Function at 0x439e90
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x48d328
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x290
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov dword [esp + 0x4c], ebp
mov edi, dword [esp + 0x2b0]
xor esi, esi
mov ecx, edi
mov dword [esp + 0x2a8], esi
call fcn.004110d0
test ax, ax
je case.0x43a585.11
mov ecx, dword [ebp + 0x60]
call fcn.0046f630
cmp eax, 0x15
jne 0x43a56b
mov al, byte [esp + 0x1b]
mov dword [esp + 0x2c], esi
mov byte [esp + 0x1c], al
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
lea ecx, [esp + 0x10]
mov byte [esp + 0x2a8], 1
call fcn.00404120
mov ecx, edi
mov byte [esp + 0x2a8], 2
call fcn.004110d0
mov ebp, dword [ebp + 0x2014]
mov cl, byte [esp + 0x1b]
movsx eax, ax
mov dword [esp + 0x60], eax
add ebp, 3
mov byte [esp + 0x30], cl
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
xor ebx, ebx
cmp eax, esi
mov byte [esp + 0x2a8], 3
jle 0x439fb0
jmp 0x439f5b
mov edi, dword [esp + 0x2b0]
xor esi, esi
push ebx
mov ecx, edi
call fcn.004110c0
mov ecx, dword [eax + 4]
cmp ecx, esi
jne 0x439f6e
xor edi, edi
jmp 0x439f76
mov edi, dword [eax + 8]
sub edi, ecx
sar edi, 2
xor esi, esi
test edi, edi
jle 0x439fa5
mov ecx, dword [esp + 0x2b0]
push ebx
call fcn.004110c0
mov eax, dword [eax + 4]
lea ecx, [esp + 0x1c]
lea edx, [eax + esi*4]
mov eax, dword [esp + 0x24]
push edx
push 1
push eax
call fcn.004010c0
inc esi
cmp esi, edi
jl 0x439f7c
mov eax, dword [esp + 0x60]
inc ebx
cmp ebx, eax
jl 0x439f52
xor esi, esi
mov ecx, dword [esp + 0x20]
cmp ecx, esi
jne 0x439fbc
xor eax, eax
jmp 0x439fc5
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
lea ecx, [ecx + eax*4 - 4]
call fcn.00404470
movsx ecx, ax
cmp ecx, ebp
jle 0x43a166
mov ecx, dword [esp + 0x20]
cmp ecx, esi
jne 0x439fe5
xor eax, eax
jmp 0x439fee
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
push ebp
lea ecx, [ecx + eax*4 - 4]
call fcn.004043e0
cmp al, 0x7f
jne 0x43a166
xor ebx, ebx
lea ecx, [esp + 0x14]
push ebx
call fcn.00404150
mov byte [esp + 0x2a8], 4
mov esi, ebp
mov ecx, dword [esp + 0x20]
cmp ecx, ebx
jne 0x43a022
xor eax, eax
jmp 0x43a02b
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
lea ecx, [ecx + eax*4 - 4]
call fcn.00404470
movsx edx, ax
cmp esi, edx
jge 0x43a067
mov ecx, dword [esp + 0x20]
cmp ecx, ebx
jne 0x43a047
xor eax, eax
jmp 0x43a050
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
push esi
lea ecx, [ecx + eax*4 - 4]
call fcn.004043e0
push eax
lea ecx, [esp + 0x18]
call fcn.00404450
inc esi
jmp 0x43a016
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x28]
push eax
push eax
call fcn.004109c0
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov esi, eax
push ecx
push esi
lea ecx, [esp + 0x24]
call fcn.00401320
lea edx, [esp + 0x14]
lea ecx, [esp + 0x1c]
push edx
push 1
push esi
mov dword [esp + 0x30], esi
call fcn.004010c0
lea ecx, [esp + 0x14]
call fcn.00404470
mov esi, dword [esp + 0x2b0]
mov ebp, eax
mov ecx, esi
call fcn.004110f0
lea eax, [esp + 0x1c]
mov ecx, esi
push eax
call fcn.00410e60
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 3
call fcn.00404260
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 2
mov edi, eax
je 0x43a0ff
push ebx
mov ecx, esi
call fcn.00404010
add esi, 4
cmp esi, edi
jne 0x43a0ec
mov esi, dword [esp + 0x34]
push esi
call fcn.0047e190
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 1
call fcn.00404260
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x43a14c
push ebx
mov ecx, esi
call fcn.00404010
add esi, 4
cmp esi, edi
jne 0x43a139
mov esi, dword [esp + 0x20]
push esi
call fcn.0047e190
add esp, 4
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
jmp 0x43a8e6
xor ebx, ebx
xor esi, esi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
cmp eax, ebx
je 0x43a1bc
mov edx, ecx
sub edx, eax
sar edx, 2
cmp esi, edx
jae 0x43a1bc
lea ecx, [eax + esi*4]
call fcn.00404470
movsx eax, ax
cmp eax, ebp
jle 0x43a1a1
mov ecx, dword [esp + 0x20]
push ebp
lea ecx, [ecx + esi*4]
call fcn.004043e0
cmp al, 0x7f
je 0x43a1b9
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
lea eax, [edx + esi*4]
push eax
push 1
push ecx
lea ecx, [esp + 0x3c]
call fcn.004010c0
inc esi
jmp 0x43a16a
mov edx, dword [esp + 0x34]
cmp edx, ebx
jne 0x43a1c8
xor ebp, ebp
jmp 0x43a1d1
mov ebp, dword [esp + 0x38]
sub ebp, edx
sar ebp, 2
push eax
push ecx
push ecx
call fcn.004109c0
mov edx, dword [esp + 0x30]
add esp, 0xc
mov esi, eax
lea ecx, [esp + 0x1c]
push edx
push esi
call fcn.00401320
xor edi, edi
cmp ebp, ebx
mov dword [esp + 0x24], esi
jle 0x43a387
mov eax, dword [esp + 0x4c]
push ebx
lea ecx, [esp + 0x44]
mov esi, dword [eax + 0x2014]
call fcn.00404150
mov ecx, dword [esp + 0x34]
push 3
mov byte [esp + 0x2ac], 5
lea ecx, [ecx + edi*4]
call fcn.004043e0
test al, 0xf
jne 0x43a31a
cmp edi, ebx
jne 0x43a239
add esi, 3
jmp 0x43a31a
mov ecx, dword [esp + 0x20]
add esi, 4
cmp ecx, ebx
jne 0x43a248
xor eax, eax
jmp 0x43a251
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
lea edx, [ecx + eax*4 - 4]
lea ecx, [esp + 0x14]
push edx
call fcn.00404130
push 0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2ac], 6
call fcn.00404150
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 7
xor ebx, ebx
call fcn.00404470
movsx eax, ax
dec eax
test eax, eax
jle 0x43a2b3
push ebx
lea ecx, [esp + 0x18]
call fcn.004043e0
push eax
lea ecx, [esp + 0x4c]
call fcn.00404450
lea ecx, [esp + 0x14]
inc ebx
call fcn.00404470
movsx ecx, ax
dec ecx
cmp ebx, ecx
jl 0x43a28d
mov ecx, dword [esp + 0x24]
lea eax, [ecx - 4]
push eax
add eax, 4
push ecx
push eax
call fcn.004109c0
mov eax, dword [esp + 0x30]
add esp, 0xc
lea ecx, [esp + 0x1c]
push eax
add eax, 0xfffffffc
push eax
call fcn.00401320
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x48]
sub eax, 4
push edx
push 1
push eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x30], eax
call fcn.004010c0
lea ecx, [esp + 0x48]
mov byte [esp + 0x2a8], 6
call fcn.00404260
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 5
call fcn.00404260
xor ebx, ebx
mov eax, dword [esp + 0x34]
lea ecx, [eax + edi*4]
call fcn.00404470
movsx ecx, ax
cmp esi, ecx
jge 0x43a358
mov edx, dword [esp + 0x34]
push esi
lea ecx, [edx + edi*4]
call fcn.004043e0
push eax
lea ecx, [esp + 0x44]
call fcn.00404450
mov eax, dword [esp + 0x34]
inc esi
lea ecx, [eax + edi*4]
call fcn.00404470
movsx ecx, ax
cmp esi, ecx
jl 0x43a32d
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x40]
push edx
push 1
push eax
lea ecx, [esp + 0x28]
call fcn.004010c0
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a8], 3
call fcn.00404260
inc edi
cmp edi, ebp
jl 0x43a1fb
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
push ecx
push eax
push eax
call fcn.004109c0
mov edx, dword [esp + 0x44]
add esp, 0xc
mov esi, eax
lea ecx, [esp + 0x30]
push edx
push esi
call fcn.00401320
mov eax, dword [esp + 0x20]
mov edx, esi
cmp eax, ebx
mov dword [esp + 0x38], edx
je 0x43a562
mov ecx, dword [esp + 0x24]
sub ecx, eax
sar ecx, 2
je 0x43a562
mov ebx, dword [esp + 0x2c8]
mov ebp, dword [esp + 0x2c]
xor edi, edi
xor esi, esi
test eax, eax
je 0x43a47f
mov ecx, dword [esp + 0x24]
sub ecx, eax
sar ecx, 2
cmp esi, ecx
jae 0x43a47f
cmp bl, 0xff
lea ecx, [eax + esi*4]
jne 0x43a414
call fcn.00404470
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
add ebp, eax
lea eax, [edx + esi*4]
push eax
push 1
push ecx
jmp 0x43a468
call fcn.00404470
test ax, ax
jle 0x43a471
mov edx, dword [esp + 0x20]
push 0
lea ecx, [edx + esi*4]
call fcn.004043e0
mov ecx, ebx
and eax, 0xff
and ecx, 0xff
add ecx, 0x40
cmp eax, ecx
jne 0x43a447
mov edi, 1
jmp 0x43a44b
test edi, edi
je 0x43a471
mov edx, dword [esp + 0x20]
lea ecx, [edx + esi*4]
call fcn.00404470
mov edx, dword [esp + 0x38]
add ebp, eax
mov eax, dword [esp + 0x20]
lea ecx, [eax + esi*4]
push ecx
push 1
push edx
lea ecx, [esp + 0x3c]
call fcn.004010c0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
inc esi
jmp 0x43a3db
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x43a4ac
sub edx, ecx
sar edx, 2
je 0x43a4ac
mov esi, dword [esp + 0x2b0]
mov ecx, esi
call fcn.004110f0
lea eax, [esp + 0x30]
mov ecx, esi
push eax
call fcn.00410e60
mov eax, dword [esp + 0x20]
xor ebx, ebx
push eax
mov eax, dword [esp + 0x28]
push eax
push eax
call fcn.004109c0
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov esi, eax
push ecx
push esi
lea ecx, [esp + 0x24]
call fcn.00401320
mov eax, dword [esp + 0x38]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x34]
mov byte [esp + 0x2a8], 2
cmp esi, eax
mov edi, eax
je 0x43a4fb
push ebx
mov ecx, esi
call fcn.00404010
add esi, 4
cmp esi, edi
jne 0x43a4e8
mov esi, dword [esp + 0x34]
push esi
call fcn.0047e190
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 1
call fcn.00404260
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x43a548
push ebx
mov ecx, esi
call fcn.00404010
add esi, 4
cmp esi, edi
jne 0x43a535
mov esi, dword [esp + 0x20]
push esi
call fcn.0047e190
add esp, 4
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
jmp 0x43a8e6
mov ebp, dword [esp + 0x2c]
jmp 0x43a4ae
mov ecx, dword [ebp + 0x60]
call fcn.0044b560
dec eax
cmp eax, 0x27
ja case.0x43a585.11
xor edx, edx
mov dl, byte [eax + 0x43be20]
jmp dword [edx*4 + 0x43bdf4]
lea eax, [esp + 0x14]
mov ecx, edi
push eax
call fcn.00411010
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 8
call fcn.00404470
push eax
lea ecx, [esp + 0xa4]
push esi
push ecx
lea ecx, [esp + 0x20]
call fcn.004044a0
mov al, byte [esp + 0xa0]
cmp al, 0x80
jne 0x43a5f3
movzx bx, byte [esp + 0xa3]
mov ebp, dword [esp + 0x2cc]
mov ecx, ebx
and ecx, 0xffff
lea esi, [esp + 0xa4]
mov edx, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
jmp 0x43a667
jbe 0x43a611
xor bx, bx
lea esi, [esp + 0xa3]
mov bl, al
sub ebx, 0x80
mov ecx, ebx
and ecx, 0xffff
jmp 0x43a655
test al, al
jne 0x43a641
movzx bx, byte [esp + 0xa1]
mov ebp, dword [esp + 0x2cc]
mov ecx, ebx
and ecx, 0xffff
lea esi, [esp + 0xa2]
mov edx, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
jmp 0x43a667
xor bx, bx
lea esi, [esp + 0xa1]
mov bl, al
mov ecx, ebx
and ecx, 0xffff
mov ebp, dword [esp + 0x2cc]
mov eax, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [esp + 0x1b]
xor edi, edi
mov byte [esp + 0x30], cl
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
push edi
push edi
push edi
mov byte [esp + 0x2b4], 9
call fcn.004109c0
mov edx, dword [esp + 0x44]
add esp, 0xc
mov esi, eax
lea ecx, [esp + 0x30]
push edx
push esi
call fcn.00401320
push ebx
push ebp
lea ecx, [esp + 0x80]
mov dword [esp + 0x40], esi
call fcn.004041c0
push eax
mov eax, dword [esp + 0x3c]
push 1
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2b4], 0xa
call fcn.004010c0
lea ecx, [esp + 0x78]
mov byte [esp + 0x2a8], 9
call fcn.00404260
mov esi, dword [esp + 0x2b0]
mov ecx, esi
call fcn.004110f0
lea ecx, [esp + 0x30]
push ecx
mov ecx, esi
call fcn.00410e60
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 8
mov ebp, eax
je 0x43a725
push edi
mov ecx, esi
call fcn.00404010
add esi, 4
cmp esi, ebp
jne 0x43a712
mov esi, dword [esp + 0x34]
push esi
call fcn.0047e190
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov byte [esp + 0x2a8], 0
call fcn.00404260
jmp 0x43ba45
push esi
mov ecx, edi
call fcn.004110c0
mov ecx, dword [eax + 4]
cmp ecx, esi
jne 0x43a765
mov dword [esp + 0x48], esi
jmp 0x43a771
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
mov dword [esp + 0x48], eax
mov dl, byte [esp + 0x1b]
mov dword [esp + 0x54], 0
mov byte [esp + 0x50], dl
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov eax, dword [esp + 0x48]
xor ebp, ebp
xor ebx, ebx
mov byte [esp + 0x2a8], 0xb
test eax, eax
jle 0x43a8dc
mov esi, dword [esp + 0x2b0]
push 0
mov ecx, esi
call fcn.004110c0
mov eax, dword [eax + 4]
lea ecx, [esp + 0x14]
lea eax, [eax + ebx*4]
push eax
call fcn.00404130
mov esi, dword [esp + 0x4c]
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0xc
mov edi, dword [esi + 0x2014]
call fcn.00404470
mov bp, ax
mov ecx, esi
sub ebp, edi
call fcn.00431ad0
mov esi, dword [esi + 0x2014]
xor cx, cx
mov cl, al
lea edx, [esp + 0x1a0]
sub ebp, ecx
lea ecx, [esp + 0x14]
push ebp
push esi
push edx
call fcn.004044a0
call fcn.0041a470
test al, al
je 0x43a837
mov edi, dword [esp + 0x2cc]
mov ecx, 0xc
lea esi, [esp + 0x1a0]
mov ebp, 0x32
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x43a85b
mov edi, dword [esp + 0x2cc]
mov ecx, ebp
and ecx, 0xffff
lea esi, [esp + 0x1a0]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x2cc]
push ebp
push ecx
lea ecx, [esp + 0x48]
call fcn.004041c0
push ecx
lea edx, [esp + 0x44]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov byte [esp + 0x2b0], 0xd
call fcn.00404130
mov esi, dword [esp + 0x2b4]
push ebx
push 0
mov ecx, esi
mov byte [esp + 0x2b4], 0xd
call fcn.004110c0
mov ecx, eax
call fcn.004010b0
mov ecx, eax
call fcn.004042d0
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a8], 0xc
call fcn.00404260
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0xb
call fcn.00404260
mov eax, dword [esp + 0x48]
inc ebx
cmp ebx, eax
jl 0x43a7b0
push 0
call fcn.0047e190
add esp, 4
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.0040fee0
mov ax, bp
jmp 0x43b083
mov ecx, dword [esp + 0x2b0]
lea eax, [esp + 0x14]
push eax
call fcn.00411010
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0xf
call fcn.00404470
push eax
lea ecx, [esp + 0x1a4]
push 0
push ecx
lea ecx, [esp + 0x20]
call fcn.004044a0
mov dl, byte [esp + 0x1a0]
xor ax, ax
shr dl, 4
mov al, dl
mov edi, dword [esp + 0x2cc]
mov ecx, eax
lea esi, [esp + 0x1a3]
and ecx, 0xffff
mov byte [esp + 0x2a8], 0
sub ecx, 3
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea esi, [eax - 3]
lea ecx, [esp + 0x14]
jmp 0x43bdcd
mov ecx, edi
call fcn.004110d0
mov edi, eax
mov al, byte [esp + 0x1b]
mov byte [esp + 0x1c], al
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
lea ecx, [esp + 0x10]
mov byte [esp + 0x2a8], 0x10
call fcn.00404120
mov cl, byte [esp + 0x1b]
mov dword [esp + 0x34], esi
mov byte [esp + 0x30], cl
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov ecx, dword [ebp + 0x60]
mov byte [esp + 0x2a8], 0x12
mov dword [esp + 0x40], esi
mov byte [esp + 0x2c], 4
call fcn.0044b560
cmp eax, 5
jne 0x43a9eb
mov byte [esp + 0x2c], al
jmp 0x43aa0a
mov ecx, dword [ebp + 0x60]
call fcn.0044b560
cmp eax, 6
je 0x43aa05
mov ecx, dword [ebp + 0x60]
call fcn.0044b560
cmp eax, 7
jne 0x43aa0a
mov byte [esp + 0x2c], 6
mov ecx, dword [ebp + 0x60]
call fcn.0044b560
cmp eax, 9
je 0x43aa26
mov ecx, dword [ebp + 0x60]
call fcn.0044b560
cmp eax, 8
jne 0x43aa9c
xor esi, esi
mov ecx, dword [esp + 0x2b0]
lea ebx, [edi - 1]
push ebx
call fcn.004110c0
mov ecx, dword [eax + 4]
cmp ecx, esi
jne 0x43aa41
xor eax, eax
jmp 0x43aa49
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
mov ebp, eax
xor esi, esi
and ebp, 0xffff
mov dword [esp + 0x48], esi
jle 0x43aa9c
mov ecx, dword [esp + 0x2b0]
push esi
push ebx
call fcn.004110c0
mov ecx, eax
call fcn.004010b0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00404130
lea ecx, [esp + 0x14]
call fcn.004042d0
push 1
lea ecx, [esp + 0x14]
call fcn.004043e0
cmp al, 5
je 0x43abe1
inc esi
cmp esi, ebp
jl 0x43aa59
lea ecx, [esp + 0x64]
call fcn.0040fec0
mov dl, byte [esp + 0x2b4]
sub esp, 0x10
mov esi, esp
lea ecx, [esp + 0x2c4]
mov byte [esp + 0x2b8], 0x17
mov dword [esp + 0x54], esp
mov byte [esi], dl
call fcn.0045d580
xor ebx, ebx
cmp eax, ebx
jge 0x43aad3
xor eax, eax
shl eax, 3
push eax
call fcn.0047e9c2
add esp, 4
mov dword [esi + 4], eax
mov ecx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2c8]
push eax
push ecx
push edx
mov ecx, esi
call fcn.00410950
lea ecx, [esp + 0x74]
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
call fcn.0040ff20
mov ebp, dword [esp + 0x2b0]
mov al, byte [esp + 0x2c8]
sub esp, 0x10
lea edx, [esp + 0x74]
mov dword [esp + 0x54], esp
mov ecx, esp
push edx
mov byte [esp + 0x88], al
lea esi, [ebp + 0x10]
call fcn.0040f280
mov ecx, esi
call fcn.0040ff20
mov al, byte [esp + 0x74]
lea ecx, [esp + 0x2b4]
mov byte [esi + 0x10], al
call fcn.00410450
cmp di, bx
jne 0x43afbb
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a8], 0x12
call fcn.0040fee0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x2a8], 0x11
je 0x43ab8f
push ebx
mov ecx, esi
call fcn.00404010
add esi, 4
cmp esi, edi
jne 0x43ab7c
mov esi, dword [esp + 0x34]
push esi
call fcn.0047e190
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 0x10
call fcn.00404260
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x43b054
push ebx
mov ecx, esi
call fcn.00404010
add esi, 4
cmp esi, edi
jne 0x43abcd
jmp 0x43b050
mov edx, dword [esp + 0x2c4]
mov edi, dword [esp + 0x2b0]
xor ebp, ebp
xor esi, esi
mov dword [edx], 1
mov dword [esp + 0x2c], esi
push ebx
mov ecx, edi
call fcn.004110c0
mov ecx, dword [eax + 4]
cmp ecx, ebp
je 0x43aceb
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
cmp esi, eax
jae 0x43aceb
push esi
push ebx
mov ecx, edi
call fcn.004110c0
mov ecx, eax
call fcn.004010b0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00404130
lea ecx, [esp + 0x14]
call fcn.004042d0
push 1
lea ecx, [esp + 0x14]
call fcn.004043e0
cmp al, 5
je 0x43ace1
mov edi, dword [esp + 0x2b0]
push ebx
mov ecx, edi
call fcn.004110c0
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x2c]
push ebx
lea esi, [ecx + edx*4]
mov ecx, edi
call fcn.004110c0
mov edi, eax
add esi, 4
mov ebp, dword [edi + 8]
cmp esi, ebp
je 0x43acb5
lea eax, [esi - 4]
mov dword [esp + 0x14], eax
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push esi
call fcn.00404130
mov ecx, dword [esp + 0x18]
call fcn.004042d0
mov ecx, dword [esp + 0x14]
add esi, 4
add ecx, 4
cmp esi, ebp
mov dword [esp + 0x14], ecx
jne 0x43ac8d
mov eax, dword [edi + 8]
mov ecx, edi
push eax
add eax, 0xfffffffc
push eax
call fcn.00401320
mov ecx, dword [edi + 8]
mov eax, dword [esp + 0x2c]
add ecx, 0xfffffffc
dec eax
mov dword [edi + 8], ecx
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x2c], eax
mov esi, eax
xor ebp, ebp
inc esi
mov dword [esp + 0x2c], esi
jmp 0x43abfd
push ebx
mov ecx, edi
call fcn.004110c0
mov ecx, dword [eax + 4]
cmp ecx, ebp
jne 0x43acfe
xor esi, esi
jmp 0x43ad06
mov esi, dword [eax + 8]
sub esi, ecx
sar esi, 2
lea ecx, [esp + 0x7c]
call fcn.00410af0
mov cl, byte [esp + 0x1b]
mov dword [esp + 0x54], ebp
mov byte [esp + 0x50], cl
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
and esi, 0xffff
mov byte [esp + 0x2a8], 0x14
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x14], esi
jle 0x43ae34
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2b0]
push edx
push ebx
call fcn.004110c0
mov ecx, eax
call fcn.004010b0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00404130
lea ecx, [esp + 0x14]
call fcn.004042d0
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x1a0]
push 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x14]
stosb byte es:[edi], al
call fcn.004043e0
and eax, 0xff
lea ecx, [esp + 0x1a0]
mov ebp, eax
mov eax, dword [esp + 0x4c]
push ebp
mov eax, dword [eax + 0x2014]
dec eax
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.004044a0
mov eax, dword [esp + 0x2cc]
test eax, eax
je 0x43add5
mov ecx, ebp
lea esi, [esp + 0x1a0]
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x1a0]
push ebp
push eax
lea ecx, [esp + 0x48]
call fcn.004041c0
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0x40]
push ecx
push 1
push edx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x2b4], 0x15
call fcn.004010c0
mov esi, dword [esp + 0x48]
lea ecx, [esp + 0x40]
add esi, ebp
mov byte [esp + 0x2a8], 0x14
mov dword [esp + 0x48], esi
call fcn.00404260
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x43ad3f
lea eax, [esp + 0x50]
lea ecx, [esp + 0x7c]
push eax
call fcn.00410e60
mov cl, byte [esp + 0x7c]
sub esp, 0x24
mov esi, esp
mov dword [esp + 0x68], esp
mov dword [esp + 0x68], esi
mov byte [esi], cl
lea ecx, [esp + 0xa0]
call fcn.00429bd0
xor ebx, ebx
cmp eax, ebx
jge 0x43ae69
xor eax, eax
shl eax, 4
push eax
call fcn.0047e9c2
add esp, 4
mov dword [esi + 4], eax
mov edx, dword [esp + 0xa8]
mov ecx, esi
push eax
mov eax, dword [esp + 0xa8]
push edx
push eax
call fcn.0040f5e0
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
lea ecx, [esp + 0xb0]
mov byte [esp + 0x2cc], 0x16
push ecx
lea ecx, [esi + 0x10]
call fcn.00405830
mov ecx, dword [esp + 0x2d4]
mov byte [esp + 0x2cc], 0x14
call fcn.00410ca0
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
cmp esi, eax
mov byte [esp + 0x2a8], 0x13
mov edi, eax
je 0x43aeeb
push ebx
mov ecx, esi
call fcn.00404010
add esi, 4
cmp esi, edi
jne 0x43aed8
mov esi, dword [esp + 0x54]
push esi
call fcn.0047e190
add esp, 4
lea ecx, [esp + 0x7c]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x2a8], 0x12
call fcn.00410bf0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x2a8], 0x11
je 0x43af38
push ebx
mov ecx, esi
call fcn.00404010
add esi, 4
cmp esi, edi
jne 0x43af25
mov esi, dword [esp + 0x34]
push esi
call fcn.0047e190
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 0x10
call fcn.00404260
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x43af85
push ebx
mov ecx, esi
call fcn.00404010
add esi, 4
cmp esi, edi
jne 0x43af72
mov esi, dword [esp + 0x20]
push esi
call fcn.0047e190
add esp, 4
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2a8], 0xffffffff
call fcn.0040fee0
mov ax, word [esp + 0x48]
jmp 0x43b083
cmp ax, 1
jbe 0x43b09e
cmp di, 1
jae 0x43b09e
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a8], 0x12
call fcn.0040fee0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x2a8], 0x11
je 0x43b007
push ebx
mov ecx, esi
call fcn.00404010
add esi, 4
cmp esi, edi
jne 0x43aff4
mov esi, dword [esp + 0x34]
push esi
call fcn.0047e190
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 0x10
call fcn.00404260
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x43b054
push ebx
mov ecx, esi
call fcn.00404010
add esi, 4
cmp esi, edi
jne 0x43b041
mov esi, dword [esp + 0x20]
push esi
call fcn.0047e190
add esp, 4
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.0040fee0
xor ax, ax
mov ecx, dword [esp + 0x2a0]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x29c
ret 0x20
lea ebx, [edi - 1]
mov ecx, ebp
push ebx
call fcn.004110c0
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x43b0b4
xor esi, esi
jmp 0x43b0bc
mov esi, dword [eax + 8]
sub esi, ecx
sar esi, 2
test si, si
mov dword [esp + 0x4c], 0
jbe 0x43b3f2
mov ecx, esi
and ecx, 0xffff
dec ecx
push ecx
push ebx
mov ecx, ebp
call fcn.004110c0
mov ecx, eax
call fcn.004010b0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00404130
lea ecx, [esp + 0x14]
call fcn.004042d0
movzx di, byte [esp + 0x2c]
push edi
lea ecx, [esp + 0x14]
mov word [esp + 0x4c], di
call fcn.004043e0
cmp al, 0x7f
jne 0x43b3ea
dec edi
lea ecx, [esp + 0x10]
push edi
call fcn.004043e0
and al, 0x30
cmp al, 0x10
jne 0x43b3ea
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
push edx
push eax
push eax
mov esi, 1
call fcn.004109c0
mov ebp, dword [esp + 0x30]
mov ebx, eax
add esp, 0xc
cmp ebx, ebp
mov edi, ebx
je 0x43b162
push 0
mov ecx, edi
call fcn.00404010
add edi, 4
cmp edi, ebp
jne 0x43b152
lea eax, [esp + 0x10]
lea ecx, [esp + 0x1c]
push eax
push 1
push ebx
mov dword [esp + 0x30], ebx
call fcn.004010c0
mov al, byte [esp + 0x1b]
mov byte [esp + 0x50], al
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
xor ebp, ebp
and esi, 0xffff
mov byte [esp + 0x2a8], 0x1a
mov dword [esp + 0x60], ebp
mov dword [esp + 0x14], esi
jle 0x43b2f2
push ebp
lea ecx, [esp + 0x20]
call fcn.004010b0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00404130
lea ecx, [esp + 0x14]
call fcn.004042d0
mov ecx, dword [esp + 0x48]
lea eax, [ecx - 1]
lea ecx, [esp + 0x10]
push eax
call fcn.004043e0
xor bx, bx
mov bl, al
cmp bx, 7
mov dword [esp + 0x40], ebx
jbe 0x43b1f4
mov ebx, 7
mov dword [esp + 0x40], ebx
lea ecx, [esp + 0x10]
call fcn.00404470
movsx edx, ax
xor esi, esi
and ebx, 0xffff
mov dword [esp + 0x44], edx
jle 0x43b24e
mov ebp, dword [esp + 0x2c]
lea eax, [esp + 0xa0]
and ebp, 0xff
sub ebp, eax
mov eax, dword [esp + 0x44]
lea edi, [esp + esi + 0xa0]
lea ecx, [edi + ebp]
cmp ecx, eax
jge 0x43b24a
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x10]
add edx, esi
push edx
call fcn.004043e0
inc esi
mov byte [edi], al
cmp esi, ebx
jl 0x43b221
mov ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0xa0]
push eax
push ecx
lea ecx, [esp + 0x54]
call fcn.004041c0
mov eax, dword [esp + 0x58]
lea edx, [esp + 0x4c]
push edx
push 1
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x2b4], 0x1b
call fcn.004010c0
mov edi, dword [esp + 0x2cc]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0xa0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov byte [esp + 0x2a8], 0x1a
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x4c]
call fcn.00404260
mov eax, dword [esp + 0x14]
inc ebp
cmp ebp, eax
mov dword [esp + 0x60], ebp
jl 0x43b1ab
mov eax, dword [esp + 0x54]
test eax, eax
je 0x43b2f2
mov ecx, dword [esp + 0x58]
sub ecx, eax
sar ecx, 2
je 0x43b2f2
mov esi, dword [esp + 0x2b0]
mov ecx, esi
call fcn.004110f0
lea edx, [esp + 0x50]
mov ecx, esi
push edx
call fcn.00410e60
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov byte [esp + 0x2a8], 0x17
cmp eax, edi
mov esi, eax
je 0x43b316
mov ecx, esi
call fcn.00404260
add esi, 4
cmp esi, edi
jne 0x43b304
mov eax, dword [esp + 0x54]
push eax
call fcn.0047e190
xor edi, edi
add esp, 4
lea ecx, [esp + 0x64]
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov byte [esp + 0x2a8], 0x12
call fcn.0040fee0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 0x11
mov ebx, eax
je 0x43b366
mov ecx, esi
call fcn.00404260
add esi, 4
cmp esi, ebx
jne 0x43b354
mov esi, dword [esp + 0x34]
push esi
call fcn.0047e190
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov byte [esp + 0x2a8], 0x10
call fcn.00404260
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x2a8], 0
mov ebx, eax
je 0x43b3b4
mov ecx, esi
call fcn.00404260
add esi, 4
cmp esi, ebx
jne 0x43b3a2
mov esi, dword [esp + 0x20]
push esi
call fcn.0047e190
add esp, 4
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2a8], 0xffffffff
call fcn.0040fee0
mov ax, word [esp + 0x40]
jmp 0x43b083
mov dword [esp + 0x4c], 1
xor edi, edi
and esi, 0xffff
mov dword [esp + 0x14], esi
jle 0x43b49b
movzx si, byte [esp + 0x2c]
mov word [esp + 0x48], si
dec esi
push edi
push ebx
mov ecx, ebp
call fcn.004110c0
mov ecx, eax
call fcn.004010b0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00404130
lea ecx, [esp + 0x14]
call fcn.004042d0
push esi
lea ecx, [esp + 0x14]
call fcn.004043e0
and al, 0x30
cmp al, 0x10
jne 0x43b450
mov dword [esp + 0x4c], 1
jmp 0x43b457
cmp dword [esp + 0x4c], 1
jne 0x43b479
push esi
lea ecx, [esp + 0x14]
call fcn.004043e0
and al, 0x20
cmp al, 0x20
je 0x43b479
mov ecx, dword [esp + 0x48]
push ecx
lea ecx, [esp + 0x14]
call fcn.004043e0
cmp al, 0x7f
je 0x43b48e
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x10]
push edx
push 1
push eax
lea ecx, [esp + 0x28]
call fcn.004010c0
mov eax, dword [esp + 0x14]
inc edi
cmp edi, eax
jl 0x43b410
mov eax, dword [esp + 0x20]
test eax, eax
je 0x43b4b3
mov edi, dword [esp + 0x24]
mov ecx, edi
sub ecx, eax
test ecx, 0xfffffffc
jne 0x43b4fc
mov edx, dword [esp + 0x14]
mov ecx, ebp
dec edx
push edx
push 0
call fcn.004110c0
mov ecx, eax
call fcn.004010b0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00404130
lea ecx, [esp + 0x14]
call fcn.004042d0
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x10]
push eax
push 1
push ecx
lea ecx, [esp + 0x28]
call fcn.004010c0
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
test eax, eax
jne 0x43b504
xor edi, edi
jmp 0x43b509
sub edi, eax
sar edi, 2
push 0
lea ecx, [esp + 0x20]
call fcn.004010b0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00404130
lea ecx, [esp + 0x14]
call fcn.004042d0
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
push edx
push eax
lea ecx, [esp + 0x38]
mov esi, eax
call fcn.00401320
xor bl, bl
xor ebp, ebp
and edi, 0xffff
mov dword [esp + 0x38], esi
jle 0x43b5fe
push ebp
lea ecx, [esp + 0x20]
call fcn.004010b0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00404130
lea ecx, [esp + 0x14]
call fcn.004042d0
test bl, bl
jne 0x43b5e0
movzx si, byte [esp + 0x2c]
push esi
lea ecx, [esp + 0x14]
call fcn.004043e0
cmp al, 0x7f
jne 0x43b599
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x10]
push eax
push 1
push ecx
jmp 0x43b5ec
lea edx, [esi - 1]
lea ecx, [esp + 0x10]
push edx
call fcn.004043e0
and al, 0x30
cmp al, 0x10
jne 0x43b5ad
inc esi
push esi
lea ecx, [esp + 0x14]
call fcn.004043e0
mov ecx, dword [esp + 0x2c8]
and eax, 0xff
and ecx, 0xff
add ecx, 0x40
cmp eax, ecx
jne 0x43b5f5
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x10]
push edx
push 1
mov bl, 1
push eax
jmp 0x43b5ec
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x10]
push ecx
push 1
push edx
lea ecx, [esp + 0x3c]
call fcn.004010c0
inc ebp
cmp ebp, edi
jl 0x43b553
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push ecx
push eax
lea ecx, [esp + 0x24]
mov esi, eax
call fcn.00401320
mov eax, esi
xor esi, esi
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x43b647
mov edx, dword [esp + 0x38]
sub edx, ecx
sar edx, 2
cmp esi, edx
jae 0x43b647
lea ecx, [ecx + esi*4]
push ecx
push 1
push eax
lea ecx, [esp + 0x28]
call fcn.004010c0
mov eax, dword [esp + 0x24]
inc esi
jmp 0x43b61b
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x43b653
xor esi, esi
jmp 0x43b65a
sub eax, ecx
sar eax, 2
mov esi, eax
push 0
lea ecx, [esp + 0x20]
call fcn.004010b0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00404130
lea ecx, [esp + 0x14]
call fcn.004042d0
movzx bx, byte [esp + 0x2c]
lea ecx, [esp + 0x10]
mov word [esp + 0x48], bx
lea edi, [ebx - 1]
push edi
call fcn.004043e0
and al, 0x30
cmp al, 0x10
jne 0x43b177
push edi
lea ecx, [esp + 0x14]
call fcn.004043e0
and al, 0xf
push ebx
movzx di, al
lea ecx, [esp + 0x14]
shl edi, 8
call fcn.004043e0
xor dx, dx
mov ebx, 6
mov dl, al
mov al, byte [esp + 0x2c]
add edi, edx
cmp al, 5
mov dword [esp + 0x40], edi
jne 0x43b6d7
mov ebx, 5
mov ebp, dword [esp + 0x40]
lea edi, [ebx + 1]
sub ebp, ebx
mov dword [esp + 0x40], ebp
and ebp, 0xffff
mov eax, ebp
cdq
idiv edi
mov ecx, eax
mov eax, ebp
cdq
idiv edi
test edx, edx
je 0x43b6fb
inc ecx
and esi, 0xffff
and ecx, 0xffff
dec esi
cmp ecx, esi
je 0x43b843
mov eax, dword [0x4a6780]
inc eax
cmp eax, 3
mov dword [0x4a6780], eax
jle 0x43b7b8
xor ebx, ebx
lea ecx, [esp + 0x64]
mov dword [0x4a6780], ebx
mov byte [esp + 0x2a8], 0x12
call fcn.0040fee0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 0x11
mov edi, eax
je 0x43b765
mov ecx, esi
call fcn.00404260
add esi, 4
cmp esi, edi
jne 0x43b753
mov esi, dword [esp + 0x34]
push esi
call fcn.0047e190
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 0x10
call fcn.00404260
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x2a8], 0
mov edi, eax
je 0x43b054
mov ecx, esi
call fcn.00404260
add esi, 4
cmp esi, edi
jne 0x43b7a5
jmp 0x43b050
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a8], 0x12
call fcn.0040fee0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x2a8], 0x11
je 0x43b7ef
mov ecx, esi
call fcn.00404260
add esi, 4
cmp esi, edi
jne 0x43b7dd
mov esi, dword [esp + 0x34]
push esi
call fcn.0047e190
xor ebx, ebx
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 0x10
call fcn.00404260
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x2a8], bl
mov edi, eax
je 0x43b054
mov ecx, esi
call fcn.00404260
add esi, 4
cmp esi, edi
jne 0x43b830
jmp 0x43b050
xor esi, esi
test ebx, ebx
jle 0x43b867
mov eax, dword [esp + 0x48]
lea ecx, [eax + esi + 1]
push ecx
lea ecx, [esp + 0x14]
call fcn.004043e0
mov byte [esp + esi + 0xa0], al
inc esi
cmp esi, ebx
jl 0x43b849
xor esi, esi
test ebp, ebp
jle 0x43b8d7
mov eax, dword [esp + 0x2c]
and eax, 0xff
mov dword [esp + 0x60], eax
mov eax, esi
lea ecx, [esp + 0x1c]
cdq
idiv edi
and eax, 0xffff
inc eax
push eax
call fcn.004010b0
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00404130
lea ecx, [esp + 0x14]
call fcn.004042d0
lea ecx, [esp + 0x10]
call fcn.00404470
movsx ecx, ax
mov eax, esi
cdq
idiv edi
add edx, dword [esp + 0x60]
cmp edx, ecx
jge 0x43b8d7
push edx
lea ecx, [esp + 0x14]
call fcn.004043e0
lea edx, [ebx + esi]
inc esi
cmp esi, ebp
mov byte [esp + edx + 0xa0], al
jl 0x43b87a
mov edi, dword [esp + 0x2cc]
lea ecx, [ebx + ebp]
mov eax, ecx
lea esi, [esp + 0xa0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edx, [esp + 0xa0]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x40]
add ebx, ecx
lea ecx, [esp + 0x4c]
push ebx
push edx
call fcn.004041c0
mov al, byte [esp + 0x1b]
mov byte [esp + 0x50], al
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a8], 0x19
push ecx
push 1
push eax
lea ecx, [esp + 0x5c]
call fcn.004010c0
mov esi, dword [esp + 0x2b0]
mov ecx, esi
call fcn.004110f0
lea edx, [esp + 0x50]
mov ecx, esi
push edx
call fcn.00410e60
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
cmp eax, ecx
mov byte [esp + 0x2a8], 0x18
mov edi, ecx
mov esi, eax
je 0x43b981
mov ecx, esi
call fcn.00404260
add esi, 4
cmp esi, edi
jne 0x43b96f
mov eax, dword [esp + 0x54]
push eax
call fcn.0047e190
xor edi, edi
add esp, 4
lea ecx, [esp + 0x4c]
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov byte [esp + 0x2a8], 0x17
call fcn.00404260
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a8], 0x12
call fcn.0040fee0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 0x11
mov ebp, eax
je 0x43b9e2
mov ecx, esi
call fcn.00404260
add esi, 4
cmp esi, ebp
jne 0x43b9d0
mov esi, dword [esp + 0x34]
push esi
call fcn.0047e190
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov byte [esp + 0x2a8], 0x10
call fcn.00404260
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x2a8], 0
mov ebp, eax
je 0x43ba30
mov ecx, esi
call fcn.00404260
add esi, 4
cmp esi, ebp
jne 0x43ba1e
mov esi, dword [esp + 0x20]
push esi
call fcn.0047e190
add esp, 4
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.0040fee0
mov ax, bx
jmp 0x43b083
mov ecx, dword [esp + 0x2b0]
call fcn.004110d0
xor ebp, ebp
test ax, ax
jbe case.0x43a585.11
xor edi, edi
and eax, 0xffff
mov dword [esp + 0x44], eax
jle 0x43a8e6
xor ebx, ebx
mov ecx, dword [esp + 0x2b0]
push edi
call fcn.004110c0
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x43bb28
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jae 0x43bb28
mov ecx, dword [esp + 0x2b0]
push edi
xor esi, esi
call fcn.004110c0
mov eax, dword [eax + 4]
lea ecx, [eax + ebx*4]
call fcn.00404470
test ax, ax
jle 0x43bb22
mov ecx, dword [esp + 0x2b0]
push edi
call fcn.004110c0
mov eax, dword [eax + 4]
push esi
lea ecx, [eax + ebx*4]
call fcn.004043e0
mov ecx, dword [esp + 0x2cc]
inc ebp
cmp ebp, 0xff
mov byte [ecx + ebp - 1], al
jg 0x43a8e6
mov ecx, dword [esp + 0x2b0]
push edi
inc esi
call fcn.004110c0
mov eax, dword [eax + 4]
lea ecx, [eax + ebx*4]
call fcn.00404470
movsx edx, ax
cmp esi, edx
jl 0x43bad1
inc ebx
jmp 0x43ba8e
mov eax, dword [esp + 0x44]
inc edi
cmp edi, eax
jl 0x43ba8c
jmp 0x43a8e6
lea eax, [esp + 0x14]
mov ecx, edi
push eax
call fcn.00411010
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0x1c
call fcn.00404470
cmp ax, 2
jge 0x43bb73
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0
call fcn.00404260
jmp case.0x43a585.11
push 1
lea ecx, [esp + 0x18]
call fcn.004043e0
and eax, 0xff
xor esi, esi
sub eax, 0x55
mov edi, eax
test edi, edi
jle 0x43bbaa
mov ebx, dword [esp + 0x2cc]
lea ecx, [esi + 2]
push ecx
lea ecx, [esp + 0x18]
call fcn.004043e0
mov byte [esi + ebx], al
inc esi
cmp esi, edi
jl 0x43bb95
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0
call fcn.00404260
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.0040fee0
mov ax, di
jmp 0x43b083
mov ecx, edi
call fcn.004110d0
test ax, ax
jle case.0x43a585.11
mov ecx, dword [esp + 0x2b0]
lea edx, [esp + 0x4c]
push edx
call fcn.00411010
push 0
lea ecx, [esp + 0x50]
mov byte [esp + 0x2ac], 0x1d
call fcn.004043e0
mov bl, al
xor esi, esi
dec bl
mov byte [esp + 0x44], bl
mov edi, dword [esp + 0x44]
and edi, 0xff
jle 0x43bc40
mov ebp, dword [esp + 0x2cc]
lea eax, [esi + 1]
lea ecx, [esp + 0x4c]
push eax
call fcn.004043e0
mov byte [esi + ebp], al
inc esi
cmp esi, edi
jl 0x43bc2b
movzx si, bl
mov byte [esp + 0x2a8], 0
lea ecx, [esp + 0x4c]
jmp 0x43bdcd
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x2b4]
call fcn.00411010
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0x1e
xor esi, esi
call fcn.00404470
test ax, ax
jle 0x43bca3
mov edi, dword [esp + 0x2cc]
push esi
lea ecx, [esp + 0x18]
call fcn.004043e0
mov byte [esi + edi], al
lea ecx, [esp + 0x14]
inc esi
call fcn.00404470
movsx edx, ax
cmp esi, edx
jl 0x43bc85
lea ecx, [esp + 0x14]
call fcn.00404470
mov esi, eax
mov byte [esp + 0x2a8], 0
lea ecx, [esp + 0x14]
jmp 0x43bdcd
lea eax, [esp + 0x40]
mov ecx, edi
push eax
call fcn.00411010
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a8], 0x1f
call fcn.00404470
test ax, ax
jge 0x43bcf7
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a8], 0
call fcn.00404260
jmp case.0x43a585.11
lea ecx, [esp + 0x40]
xor esi, esi
call fcn.00404470
test ax, ax
jle 0x43bd2c
mov edi, dword [esp + 0x2cc]
push esi
lea ecx, [esp + 0x44]
call fcn.004043e0
mov byte [esi + edi], al
lea ecx, [esp + 0x40]
inc esi
call fcn.00404470
movsx ecx, ax
cmp esi, ecx
jl 0x43bd0e
lea ecx, [esp + 0x40]
call fcn.00404470
mov esi, eax
mov byte [esp + 0x2a8], 0
lea ecx, [esp + 0x40]
jmp 0x43bdcd
lea edx, [esp + 0x2c]
mov ecx, edi
push edx
call fcn.00411010
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2a8], 0x20
call fcn.00404470
cmp ax, 4
jge 0x43bd81
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2a8], 0
call fcn.00404260
jmp case.0x43a585.11
lea ecx, [esp + 0x2c]
xor esi, esi
call fcn.00404470
test ax, ax
jle 0x43bdb6
mov edi, dword [esp + 0x2cc]
push esi
lea ecx, [esp + 0x30]
call fcn.004043e0
mov byte [esi + edi], al
lea ecx, [esp + 0x2c]
inc esi
call fcn.00404470
movsx eax, ax
cmp esi, eax
jl 0x43bd98
lea ecx, [esp + 0x2c]
call fcn.00404470
mov esi, eax
mov byte [esp + 0x2a8], 0
lea ecx, [esp + 0x2c]
call fcn.00404260
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.0040fee0
mov ax, si
jmp 0x43b083