Function at 0x43d055
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 8], edi
mov edx, dword [0x4e6304]
mov edi, dword [ecx]
mov eax, dword [0x4e6300]
mov dword [ebp - 0x10], edx
movzx edx, dl
mov dword [ebp - 4], ebx
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x14], eax
test byte [edi + 0x169], 1
je 0x43cbd6
or edx, 2
jmp 0x43cbda
movzx edx, byte [ebp - 0x10]
mov eax, edx
movzx ecx, byte [edi + 0x161]
or eax, 4
cmp ecx, 2
je 0x43cbed
mov eax, edx
mov edx, dword [ebp + 0xc]
and eax, 0xfffffff7
movzx ecx, byte [edx + 0x50]
mov esi, ecx
movzx edx, byte [edx + 0x51]
mov ebx, edx
shr esi, 1
and ebx, 4
and esi, 1
shr ebx, 2
shl esi, 3
or eax, esi
mov esi, ebx
shl esi, 4
and eax, 0xffffffef
or eax, esi
test dl, 1
je 0x43cc23
or eax, 4
jmp 0x43cc31
and edx, 2
mov esi, eax
and esi, 0xfffffffb
test edx, edx
je 0x43cc31
mov eax, esi
mov edx, dword [ebp + 0xc]
movsx edx, byte [edx + 0x48]
lea esi, [edx - 0xf]
cmp esi, 0x24
ja case.0x43cc4e.16
mov byte [ebp - 0x10], al
mov dword [ebp - 0x14], 4
jmp dword [esi*4 + 0x4e6320]
mov edx, 0x40
jmp 0x43cc5e
xor edx, edx
or edx, 0x400
jmp 0x43d5ac
mov edx, 0x40
jmp 0x43cc72
xor edx, edx
or edx, 0x200
jmp 0x43d5ac
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
add eax, 0xfffffffb
cmp eax, 0x33
ja case.0x43cc8f.13
jmp dword [eax*4 + 0x4e63c0]
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 2
push dword [ecx + 0xc]
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 2
push 0x10
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 2
push 8
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 2
push 8
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ef30
add esp, 0x18
jmp 0x43d672
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 2
push 4
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov ecx, dword [ebp + 0xc]
mov edx, 2
push dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
movsx eax, word [ecx + 0x40]
push eax
push edx
push edx
push dword [ecx + 0x38]
push dword [ebx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 2
push 1
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push dword [ebp + 0x10]
movsx edx, word [ecx + 0x40]
push edx
mov ebx, dword [eax]
push 2
push dword [ecx + 0x38]
push dword [ebx]
call fcn.0044f3c0
add esp, 0x14
jmp 0x43d672
mov dword [ebp - 0x18], edx
xor esi, esi
jmp 0x43d234
mov dword [ebp - 0x18], eax
xor esi, esi
jmp 0x43d08e
mov edx, 0x40
jmp 0x43d5a2
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
add eax, 0xfffffffb
cmp eax, 0x33
ja case.0x43cdea.13
jmp dword [eax*4 + 0x4e64a0]
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 0x10
push dword [ecx + 0xc]
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov ecx, dword [ebp + 0xc]
mov edx, 0x10
push dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
movsx eax, word [ecx + 0x40]
push eax
push edx
push edx
push dword [ecx + 0x38]
push dword [ebx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 0x10
push 8
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 0x10
push 8
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ef30
add esp, 0x18
jmp 0x43d672
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 0x10
push 4
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 0x10
push 2
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 0x10
push 1
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push dword [ebp + 0x10]
movsx edx, word [ecx + 0x40]
push edx
mov ebx, dword [eax]
push 0x10
push dword [ecx + 0x38]
push dword [ebx]
call fcn.0044f3c0
add esp, 0x14
jmp 0x43d672
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
add eax, 0xfffffffb
cmp eax, 0x33
ja case.0x43cf27.13
jmp dword [eax*4 + 0x4e6580]
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 8
push dword [ecx + 0xc]
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 8
push 0x10
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov ecx, dword [ebp + 0xc]
mov edx, 8
push dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
movsx eax, word [ecx + 0x40]
push eax
push edx
push edx
push dword [ecx + 0x38]
push dword [ebx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov ecx, dword [ebp + 0xc]
mov edx, 8
push dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
movsx eax, word [ecx + 0x40]
push eax
push edx
push edx
push dword [ecx + 0x38]
push dword [ebx]
call fcn.0044ef30
add esp, 0x18
jmp 0x43d672
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 8
push 4
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 8
push 2
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 0x40]
push eax
push 8
push 1
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044ec30
add esp, 0x18
jmp 0x43d672
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push dword [ebp + 0x10]
movsx edx, word [ecx + 0x40]
push edx
mov ebx, dword [eax]
push 8
push dword [ecx + 0x38]
push dword [ebx]
call fcn.0044f3c0
add esp, 0x14
jmp 0x43d672
mov esi, dword [ebp + 8]
mov esi, dword [esi + 8]
cmp esi, 5
mov dword [ebp - 0x1c], esi
jl 0x43d327
cmp dword [ebp - 0x1c], 0xc
jg 0x43d20b
mov ecx, dword [ebp + 0xc]
mov esi, 1
xor edx, edx
movsx eax, word [ecx + 0x42]
movsx ebx, word [ecx + 0x40]
mov dword [ebp - 0x18], eax
mov word [ecx + 0x40], si
mov word [ecx + 0x42], dx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
add eax, 0xfffffffb
cmp eax, 0xc
ja case.0x43d610.31
jmp dword [eax*4 + 0x4e6694]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push dword [ebp + 0x10]
movsx edx, word [ecx + 0x40]
push edx
mov edi, dword [eax]
push 0xa
push dword [ecx + 0x38]
push dword [edi + 4]
push dword [edi]
call fcn.0044f770
add esp, 0x18
jmp 0x43d677
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push dword [ebp + 0x10]
movzx edx, byte [edi + 0x4c]
and edx, 4
shl edx, 2
push edx
mov eax, dword [eax]
movsx ecx, word [edi + 0x40]
push ecx
push dword [edi + 0x38]
push dword [eax + 4]
push dword [eax]
call fcn.0044f550
add esp, 0x18
jmp 0x43d677
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push dword [ebp + 0x10]
movsx edx, word [ecx + 0x40]
push edx
mov edi, dword [eax]
push 0xa
push dword [ecx + 0x38]
push dword [edi]
call fcn.0044f3c0
add esp, 0x14
jmp 0x43d677
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push dword [ebp + 0x10]
movzx edx, byte [edi + 0x4c]
and edx, 4
shl edx, 2
push edx
mov eax, dword [eax]
movsx ecx, word [edi + 0x40]
push ecx
push dword [edi + 0x38]
push dword [eax]
call fcn.0044f230
add esp, 0x14
jmp 0x43d677
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push dword [ebp + 0x10]
movsx ecx, word [edi + 0x40]
push ecx
mov edx, dword [eax]
push 0xa
push dword [edi + 0x38]
movzx eax, word [edx]
push eax
call fcn.0044f3c0
add esp, 0x14
jmp 0x43d677
mov eax, dword [ebp + 8]
push dword [ebp + 0x10]
mov edx, dword [eax]
mov eax, dword [ebp + 0xc]
movsx edx, word [edx]
movzx ecx, byte [eax + 0x4c]
and ecx, 4
shl ecx, 2
push ecx
movsx edi, word [eax + 0x40]
push edi
push dword [eax + 0x38]
push edx
call fcn.0044f230
add esp, 0x14
jmp 0x43d677
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push dword [ebp + 0x10]
movsx ecx, word [edi + 0x40]
push ecx
mov edx, dword [eax]
push 0xa
push dword [edi + 0x38]
movzx eax, byte [edx]
push eax
call fcn.0044f3c0
add esp, 0x14
jmp 0x43d677
mov eax, dword [ebp + 8]
push dword [ebp + 0x10]
mov edx, dword [eax]
mov eax, dword [ebp + 0xc]
movsx edx, byte [edx]
movzx ecx, byte [eax + 0x4c]
and ecx, 4
shl ecx, 2
push ecx
movsx edi, word [eax + 0x40]
push edi
push dword [eax + 0x38]
push edx
call fcn.0044f230
add esp, 0x14
jmp 0x43d677
mov eax, 0x3d
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x1c], 0x11
jg 0x43d2f9
mov edx, dword [ebp + 0xc]
xor esi, esi
movsx ecx, word [edx + 0x42]
movsx ebx, word [edx + 0x40]
mov dword [ebp - 0x18], ecx
xor ecx, ecx
mov word [edx + 0x40], si
mov esi, 1
mov word [edx + 0x42], cx
test byte [edi + 0x168], 0x10
je 0x43d243
or eax, 1
mov byte [ebp - 0x10], al
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
add eax, 0xfffffffb
cmp eax, 0xc
ja case.0x43d610.31
jmp dword [eax*4 + 0x4e6660]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push dword [ebp + 0x10]
push 0x4000000
mov ecx, dword [eax]
push dword [edx + 0x38]
push dword [ecx + 4]
push dword [ecx]
call fcn.0044fca0
add esp, 0x14
jmp 0x43d677
mov eax, dword [ebp + 8]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp + 0x10]
push 0x4000000
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax]
push dword [edx + 0x38]
push dword [ecx]
call fcn.0044faf0
add esp, 0x18
jmp 0x43d677
mov eax, dword [ebp + 8]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp + 0x10]
push 0x4000000
mov ecx, dword [ebp + 0xc]
mov edx, dword [eax]
push dword [ecx + 0x38]
movsx edi, word [edx]
push edi
call fcn.0044faf0
add esp, 0x18
jmp 0x43d677
mov eax, dword [ebp + 8]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp + 0x10]
push 0x4000000
mov ecx, dword [ebp + 0xc]
mov edx, dword [eax]
push dword [ecx + 0x38]
movsx edi, byte [edx]
push edi
call fcn.0044faf0
add esp, 0x18
jmp 0x43d677
cmp dword [ebp - 0x1c], 0x38
jl 0x43d327
cmp dword [ebp - 0x1c], 0x39
jg 0x43d327
mov esi, dword [ebp + 0xc]
xor edx, edx
movsx eax, word [esi + 0x42]
movsx ebx, word [esi + 0x40]
mov dword [ebp - 0x18], eax
mov word [esi + 0x40], dx
mov word [esi + 0x42], dx
mov esi, 1
jmp 0x43d69b
cmp edx, 0x23
je 0x43d733
xor edx, edx
mov ebx, dword [ebp + 0xc]
movzx esi, byte [edi + 0x168]
mov dword [ebp - 0x20], esi
movzx ebx, byte [ebx + 0x4f]
and ebx, 8
shr ebx, 3
test esi, 2
je 0x43d363
mov esi, edx
or esi, 0x100000
test ebx, ebx
jne 0x43d35f
mov edx, esi
jne 0x43d367
jmp 0x43d380
test ebx, ebx
je 0x43d380
mov ebx, edx
movzx edi, byte [edi + 0x173]
or ebx, 0x4000
test edi, 0x80
je 0x43d380
mov edx, ebx
test byte [ebp - 0x20], 0x40
je 0x43d38c
or eax, 1
mov byte [ebp - 0x10], al
mov ebx, dword [ebp + 0xc]
mov eax, edx
or eax, 0x10
mov esi, ecx
and esi, 8
test byte [ebx + 0x4c], 4
jne 0x43d3a1
mov eax, edx
or eax, 0x80000000
mov edi, eax
or edi, 0x1000000
test cl, 4
jne 0x43d3b5
mov edi, eax
shl esi, 0x14
mov eax, 0x800000
or edi, esi
mov edx, edi
or edx, 0x400000
test cl, 0x10
jne 0x43d3ce
mov edx, edi
and ecx, 0x40
shr ecx, 5
shl eax, cl
add eax, 0xff800000
or edx, eax
mov eax, edx
or eax, 0x100
test byte [ebx + 0x4c], 0x40
jne 0x43d3ec
mov eax, edx
mov edx, dword [ebp - 0x1c]
add edx, 0xffffffe6
mov dword [ebp - 0x1c], edx
cmp edx, 0x1a
ja case.0x43d610.31
jmp dword [edx*4 + 0x4e66e0]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp + 0x10]
push eax
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
movsx edx, word [esi + 0x42]
push edx
push dword [esi + 0x38]
movsx ecx, word [esi + 0x40]
push ecx
movsx ebx, byte [esi + 0x44]
push ebx
push dword [esi + 0x38]
push dword [eax]
call fcn.0044fe50
jmp 0x43d66f
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp + 0x10]
push eax
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
movsx edx, word [esi + 0x42]
push edx
push dword [esi + 0x38]
movsx ecx, word [esi + 0x40]
push ecx
movsx ebx, byte [esi + 0x44]
push ebx
push dword [esi + 0x38]
push dword [eax]
call fcn.004520f0
jmp 0x43d66f
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp + 0x10]
push eax
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
movsx edx, word [esi + 0x42]
push edx
push dword [esi + 0x38]
movsx ecx, word [esi + 0x40]
push ecx
movsx ebx, byte [esi + 0x44]
push ebx
push dword [esi + 0x38]
push dword [eax]
call fcn.004534a0
jmp 0x43d66f
mov eax, dword [ebp + 0xc]
movzx ebx, byte [eax + 0x4c]
mov esi, ebx
and esi, 4
mov eax, ecx
and eax, 8
shl eax, 0x14
lea edi, [esi*4 + 2]
or edi, 0x80000000
mov esi, edi
or esi, 0x1000000
test cl, 4
jne 0x43d4c8
mov esi, edi
or esi, eax
mov eax, 0x800000
mov edx, esi
or edx, 0x400000
test cl, 0x10
jne 0x43d4de
mov edx, esi
and ecx, 0x40
shr ecx, 5
shl eax, cl
add eax, 0xff800000
or edx, eax
mov eax, edx
or eax, 0x100
test bl, 0x40
jne 0x43d4fb
mov eax, edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 8]
add edx, 0xffffffe6
cmp edx, 0x1a
ja case.0x43d610.31
jmp dword [edx*4 + 0x4e6760]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp + 0x10]
push eax
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
movsx edx, word [esi + 0x42]
push edx
push 0
movsx ecx, word [esi + 0x40]
push ecx
movsx ebx, byte [esi + 0x44]
push ebx
push dword [esi + 0x38]
push dword [eax]
call fcn.0044fe50
jmp 0x43d66f
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp + 0x10]
push eax
mov ebx, dword [ebp + 0xc]
push 0
mov eax, dword [ebp + 8]
push dword [ebx + 0x38]
movsx edx, word [ebx + 0x40]
push edx
movsx ecx, byte [ebx + 0x44]
push ecx
push dword [ebx + 0x38]
push dword [eax]
call fcn.004520f0
jmp 0x43d66f
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp + 0x10]
push eax
mov ebx, dword [ebp + 0xc]
push 0
mov eax, dword [ebp + 8]
push dword [ebx + 0x38]
movsx edx, word [ebx + 0x40]
push edx
movsx ecx, byte [ebx + 0x44]
push ecx
push dword [ebx + 0x38]
push dword [eax]
call fcn.004534a0
jmp 0x43d66f
xor edx, edx
or edx, 1
jmp 0x43d5ac
mov edx, 5
mov eax, dword [ebp + 0xc]
mov ebx, edx
or ebx, 0x10
mov edi, 0x800000
test byte [eax + 0x4c], 4
jne 0x43d5c1
mov ebx, edx
or ebx, 0x80000000
mov edx, ecx
mov esi, ebx
and edx, 8
or esi, 0x1000000
test cl, 4
jne 0x43d5db
mov esi, ebx
shl edx, 0x14
or esi, edx
mov eax, esi
or eax, 0x400000
test cl, 0x10
mov edx, dword [ebp + 8]
jne 0x43d5f1
mov eax, esi
and ecx, 0x40
shr ecx, 5
shl edi, cl
mov edx, dword [edx + 8]
add edi, 0xff800000
add edx, 0xffffffe6
or eax, edi
cmp edx, 0x1a
ja case.0x43d610.31
jmp dword [edx*4 + 0x4e67e0]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp + 0x10]
push eax
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
movsx edx, word [esi + 0x42]
push edx
push 0
movsx ecx, word [esi + 0x40]
push ecx
movsx ebx, byte [esi + 0x44]
push ebx
push dword [esi + 0x38]
push dword [eax]
call fcn.004520f0
jmp 0x43d66f
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp + 0x10]
push eax
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
movsx edx, word [esi + 0x42]
push edx
push 0
movsx ecx, word [esi + 0x40]
push ecx
movsx ebx, byte [esi + 0x44]
push ebx
push dword [esi + 0x38]
push dword [eax]
call fcn.004534a0
add esp, 0x28
mov dword [ebp - 0x18], edx
xor esi, esi
test eax, eax
je 0x43d6f1
cmp eax, 0xa
je 0x43d6f1
cmp eax, 0xc
je 0x43d6f1
cmp eax, 8
mov eax, 0x40
je 0x43d6f3
mov eax, 0x3f
jmp 0x43d6f3
mov dword [ebp - 0x18], eax
xor esi, esi
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov eax, dword [ebp + 8]
mov ecx, dword [ecx + 0x38]
mov edi, ecx
mov eax, dword [eax + 0xc]
sub edi, eax
test edi, edi
jle 0x43d6d9
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov byte [edx + esi], 0x20
inc edx
mov ecx, dword [eax + 0x38]
mov edi, ecx
mov eax, dword [ebx + 0xc]
sub edi, eax
cmp edx, edi
jl 0x43d6bd
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
cmp ecx, eax
jl 0x43d6df
mov ecx, eax
mov eax, dword [ebp + 8]
push ecx
add edx, dword [ebp + 0x10]
push dword [eax]
push edx
call fcn.004c9010
add esp, 0xc
xor eax, eax
test esi, esi
je 0x43d705
mov edx, dword [ebp + 0xc]
mov word [edx + 0x40], bx
mov ebx, dword [ebp - 0x18]
mov word [edx + 0x42], bx
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
xor eax, eax
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov eax, 0x30
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov edx, 0x40
test ebx, ebx
je 0x43d332
mov edx, 0
jmp 0x43d332