Function at 0x43d12e
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x320
push ebx
push esi
mov ebx, ecx
lea ecx, [ebp - 0x2d4]
push edi
mov dword [ebp - 0x24], ebx
call fcn.00415720
mov esi, dword [0x486ff4]
lea ecx, [ebp - 0x84]
and dword [ebp - 0x48], 0
mov edi, 0x40136c
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], esi
call fcn.004079f3
lea ecx, [ebp - 0xe8]
call fcn.004079f3
lea ecx, [ebp - 0x100]
call fcn.004079f3
lea ecx, [ebp - 0x1c4]
call fcn.0040f810
lea ecx, [ebp - 0x31c]
call fcn.00413030
lea ecx, [ebp - 0x1dc]
call fcn.004079f3
lea ecx, [ebp - 0x20c]
call fcn.004079f3
lea ecx, [ebp - 0x1f4]
call fcn.004079f3
lea ecx, [ebp - 0x27c]
call fcn.004079f3
lea ecx, [ebp - 0x1b0]
call fcn.0040f810
lea ecx, [ebp - 0x264]
call fcn.00415720
mov eax, dword [0x487000]
xor edx, edx
mov dword [ebp - 0xc8], eax
xor eax, eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x12c], esi
movzx ecx, word [eax]
mov eax, dword [ebx]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x110], edi
mov dword [ebp - 0x120], edi
mov esi, dword [eax + 0x40]
mov ecx, esi
mov dword [ebp - 0x130], edi
mov edi, dword [ebx + 0x20]
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x118], edx
mov dword [ebp - 0xcc], 0x401448
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0xb8], edx
mov byte [ebp - 6], dl
mov dword [ebp - 0x3c], edx
mov byte [ebp - 7], dl
mov dword [ebp - 0x5c], edx
call dword [0x488254]
mov ecx, ebx
call esi
movzx ebx, ax
mov eax, dword [edi]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x488254]
mov ecx, edi
call esi
imul ebx, eax
push ecx
push 0x402154
lea ecx, [ebp - 0x1dc]
mov dword [ebp - 0xb4], ebx
call fcn.0040750f
test al, al
je 0x43eae2
push ecx
push 0x404038
lea ecx, [ebp - 0x20c]
call fcn.0040750f
test al, al
je 0x43eae2
push ecx
push 0x404044
lea ecx, [ebp - 0x1f4]
call fcn.0040750f
test al, al
je 0x43eae2
push 0x18
pop ecx
call fcn.0040b083
test eax, eax
je 0x43d2e6
mov ecx, eax
call fcn.004079f3
mov esi, eax
jmp 0x43d2e8
xor esi, esi
test esi, esi
je 0x43eae2
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x1dc]
mov ecx, esi
push eax
call fcn.00407460
test al, al
je 0x43eae2
push esi
xor edx, edx
lea ecx, [ebp - 0x5c]
call fcn.00439345
test al, al
jne 0x43d342
push 0xcff
push ecx
mov ecx, 0x40400c
call fcn.0040f77d
pop ecx
push edx
push eax
push 0x402068
push 3
push 1
push 0x43c
push dword [ebp + 0x20]
jmp 0x43eda3
mov edi, dword [ebp + 0x20]
push 3
push 0
push 0x437
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x488254]
mov ecx, edi
call esi
push 0x401ef4
push edi
call fcn.0040f0f5
pop ecx
pop ecx
xor ecx, ecx
call fcn.0043cf83
test al, al
je 0x43eae2
xor ebx, ebx
inc ebx
mov ecx, dword [ebp - 0x5c]
test ecx, ecx
je 0x43edb0
mov esi, dword [ecx + 8]
mov eax, ecx
mov dword [ebp - 0x40], esi
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x34], eax
call fcn.0040b1df
mov ecx, dword [0x486c2c]
call fcn.0043cf83
mov byte [ebp - 5], 0
test esi, esi
je 0x43d41b
and dword [ebp - 0x1bc], 0
mov ecx, dword [ebp - 0x1b8]
test ecx, ecx
je 0x43d3d1
call fcn.0040b1df
and dword [ebp - 0x1b8], 0
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x2d4]
and dword [ebp - 0x1b4], 0
push esi
push dword [eax + 0x30]
push eax
push dword [eax + 0x20]
lea eax, [ebp - 0x1c4]
push eax
call fcn.00415794
test al, al
je 0x43ec28
lea ecx, [ebp - 0x2d4]
call fcn.0040dec0
mov byte [ebp - 7], al
test al, al
je 0x43ebcb
lea eax, [ebp - 0x2d4]
jmp 0x43d435
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0x38]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x43d42e
mov byte [ebp - 6], 0x10
jmp 0x43d438
mov eax, dword [ecx + 0x3c]
mov byte [ebp - 6], 0x20
mov dword [ebp - 0x14], eax
mov eax, dword [eax]
push ecx
mov esi, dword [eax + 0x18]
mov ecx, esi
call dword [0x488254]
mov ecx, dword [ebp - 0x14]
call esi
push eax
lea ecx, [ebp - 0xcc]
call fcn.0041591c
test al, al
je 0x43ed82
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x40]
neg ecx
mov eax, dword [eax]
sbb ecx, ecx
and ecx, 2
mov dword [ebp - 0xc], ecx
push ecx
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x488254]
mov ecx, dword [ebp - 0x14]
call esi
mov cl, byte [ebp - 6]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], cl
test eax, eax
je 0x43e086
mov cl, byte [eax]
test cl, cl
je 0x43dfd9
cmp cl, 0xe5
jne 0x43d55c
cmp byte [ebp - 5], 0
je 0x43dfab
mov edx, dword [ebp + 0x28]
mov ecx, edi
mov dword [ebp - 0x3c], ebx
call fcn.004391cf
mov eax, dword [edi]
push 3
push 0
push 0x44f
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x488254]
mov ecx, edi
call esi
push dword [ebp - 0x34]
push 0x401f90
push edi
call fcn.0040f0f5
mov edx, dword [ebp - 0x38]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0xc]
call fcn.0043937b
cmp dword [0x484030], 5
jbe 0x43d553
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43d553
and dword [ebp - 0x15c], 0
lea eax, [ebp - 0x15c]
and dword [ebp - 0x158], 0
mov edx, 0x405151
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], ebx
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0x2f0000c
push eax
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x3f0
push eax
push ecx
push ecx
call fcn.00405d68
mov byte [ebp - 5], 0
jmp 0x43dfab
mov al, byte [eax + 0xb]
and al, 0xf
cmp al, 0xf
jne 0x43d57d
cmp byte [ebp - 5], 0
jne 0x43dfab
mov ecx, dword [ebp - 0xc]
mov byte [ebp - 5], bl
mov dword [ebp - 0x38], ecx
jmp 0x43dfae
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0x50]
call fcn.00414444
cmp byte [ebp - 5], 0
je 0x43d751
lea ecx, [ebp - 0xac]
call fcn.004079f3
lea ecx, [ebp - 0x50]
call fcn.00414c0c
mov ecx, dword [ebp - 0xc]
mov bh, al
lea edi, [ecx - 1]
cmp edi, dword [ebp - 0x38]
jb 0x43d64b
mov eax, dword [ebp - 0x14]
push edi
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x488254]
mov ecx, dword [ebp - 0x14]
call esi
mov esi, eax
mov al, byte [ebp - 6]
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0x128], esi
mov byte [ebp - 0x124], al
mov cl, byte [esi + 0xb]
and cl, 0xf
cmp cl, 0xf
jne 0x43d63c
mov bl, byte [esi]
mov ecx, dword [ebp - 0xc]
mov dl, bl
and dl, 0x3f
sub ecx, edi
movzx eax, dl
cmp eax, ecx
jne 0x43d691
lea ecx, [ebp - 0x130]
call fcn.00414c0c
cmp al, bh
jne 0x43d691
lea ecx, [ebp - 0x130]
call fcn.0040de92
test ax, ax
jne 0x43d691
lea ecx, [ebp - 0x130]
call fcn.00414c3f
test al, al
je 0x43d691
and bl, 0x40
jne 0x43d646
dec edi
cmp edi, dword [ebp - 0x38]
jae 0x43d5ba
mov ecx, dword [ebp - 0xc]
jmp 0x43d651
mov esi, dword [ebp - 0xb8]
mov al, byte [esi + 0xb]
and al, 0xf
cmp al, 0xf
jne 0x43d660
mov al, byte [esi]
and al, 0x40
jmp 0x43d662
xor al, al
test al, al
je 0x43d691
lea eax, [ebp - 0xac]
push eax
push ecx
mov ecx, dword [ebp - 0x14]
call fcn.004142c4
test al, al
je 0x43d740
lea ecx, [ebp - 0xac]
call fcn.00414d9a
test al, al
jne 0x43d740
mov edi, dword [ebp + 0x20]
xor ebx, ebx
mov edx, dword [ebp + 0x28]
inc ebx
mov ecx, edi
mov dword [ebp - 0x3c], ebx
call fcn.004391cf
mov eax, dword [edi]
push 3
push 0
push 0x44f
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x488254]
mov ecx, edi
call esi
push dword [ebp - 0x34]
push 0x401f90
push edi
call fcn.0040f0f5
mov edx, dword [ebp - 0x38]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0xc]
call fcn.0043937b
cmp dword [0x484030], 5
jbe 0x43d73a
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43d73a
and dword [ebp - 0x154], 0
lea eax, [ebp - 0x154]
and dword [ebp - 0x150], 0
mov edx, 0x405151
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], ebx
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 0x2f0000d
push eax
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], 0x3f0
push eax
push ecx
push ecx
call fcn.00405d68
mov byte [ebp - 5], 0
jmp 0x43d746
mov edi, dword [ebp + 0x20]
xor ebx, ebx
inc ebx
lea ecx, [ebp - 0xac]
call fcn.00407a45
mov ecx, dword [0x486c2c]
call fcn.0043cf83
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0x50]
call fcn.00414444
push 0xffffffffffffffff
push 0
push dword [ebp - 0x34]
lea ecx, [ebp - 0x84]
call fcn.00407460
test al, al
je 0x43eae2
cmp dword [ebp - 0x40], 0
je 0x43d7a5
lea eax, [ebp - 0x1dc]
push eax
lea ecx, [ebp - 0x84]
call fcn.0040786a
test al, al
je 0x43eae2
mov esi, dword [ebp - 0x14]
lea eax, [ebp - 0x100]
push eax
push dword [ebp - 0xc]
mov ecx, esi
call fcn.004142c4
test al, al
je 0x43d7cc
cmp dword [ebp - 0xf4], 0
lea eax, [ebp - 0x100]
jne 0x43d7d2
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0x84]
call fcn.0040786a
test al, al
je 0x43eae2
cmp byte [ebp + 0x24], 0
je 0x43d82e
mov eax, dword [ebp - 0x48]
mov al, byte [eax + 0xb]
test al, 8
je 0x43d7fc
and al, 0xf
cmp al, 0xf
jne 0x43d82e
mov eax, dword [edi]
push 3
push 0
push 0x13a0
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x488254]
mov ecx, edi
call esi
lea eax, [ebp - 0x84]
push eax
push 0x401f90
push edi
call fcn.0040f0f5
mov esi, dword [ebp - 0x14]
add esp, 0xc
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x51]
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x84]
push dword [ebp + 0x28]
push edi
push dword [ebp + 0x14]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.0043ee2c
test al, al
je 0x43ed1d
mov ecx, dword [0x486c2c]
call fcn.0043cf83
mov eax, dword [ebp - 0x48]
cmp byte [eax], 0xe5
jne 0x43d893
cmp byte [ebp - 5], 0
je 0x43dfab
push dword [ebp - 0xc]
mov edx, dword [ebp - 0x38]
mov ecx, esi
call fcn.0043937b
jmp 0x43d553
mov al, byte [eax + 0xb]
test al, 8
je 0x43d8a4
and al, 0xf
cmp al, 0xf
je 0x43d8a4
mov al, bl
jmp 0x43d8a6
xor al, al
test al, al
jne 0x43de2a
and dword [ebp - 0x10], 0
lea ecx, [ebp - 0xac]
and dword [ebp - 0x8c], 0
mov byte [ebp - 0x29], al
mov eax, dword [0x486ff4]
mov dword [ebp - 0x94], 0x40136c
mov dword [ebp - 0x90], eax
call fcn.004079f3
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0xc]
push edi
mov eax, dword [ebx]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x488254]
mov ecx, ebx
call esi
mov eax, dword [ebx]
push edi
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x488254]
mov ecx, ebx
call esi
mov ebx, eax
xor esi, esi
push 0xb
mov edx, ebx
pop edi
movzx ecx, byte [edx]
shl esi, 2
xor esi, ecx
inc edx
sub edi, 1
jne 0x43d90f
push 2
pop ecx
movzx eax, byte [ebx]
shl esi, 2
xor esi, eax
inc ebx
sub ecx, 1
jne 0x43d920
mov ebx, dword [ebp - 0xc]
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0x58]
push eax
push ebx
push esi
lea ecx, [ebp - 0xcc]
call fcn.004159c1
test al, al
je 0x43ec67
mov eax, dword [ebp - 0xb0]
mov edi, dword [ebp - 0x14]
sub eax, 1
mov dword [ebp - 0xb0], eax
je 0x43dc59
push dword [ebp - 0x58]
mov ecx, edi
push eax
push ebx
call fcn.0043920b
test al, al
je 0x43dc59
movzx ecx, word [ebp - 0xbc]
xor edi, edi
push 0x20
pop edx
sub edx, dword [ebp - 0xbc]
mov eax, esi
and eax, dword [ebp - 0xbe]
xor edi, eax
shr esi, cl
test dx, dx
jg 0x43d989
movzx eax, di
xor ebx, ebx
imul ecx, eax, 0xc
inc ebx
add ecx, dword [ebp - 0xc4]
mov eax, dword [ecx]
cmp eax, ebx
jb 0x43d9b8
dec eax
mov dword [ecx], eax
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0xc]
push edi
mov dword [ebp - 0x3c], ebx
mov eax, dword [eax]
mov byte [ebp - 0x29], bl
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x488254]
mov ecx, dword [ebp - 0x14]
call esi
mov edx, eax
lea ecx, [ebp - 0x10]
call fcn.00439294
mov ecx, dword [ebp - 0x14]
push edi
mov ecx, dword [ecx]
mov esi, dword [ecx + 0xc]
mov ecx, esi
test al, al
je 0x43dac3
call dword [0x488254]
mov ecx, dword [ebp - 0x14]
call esi
mov cl, byte [ebp - 6]
mov dword [ebp - 0x8c], eax
mov byte [ebp - 0x88], cl
test eax, eax
jne 0x43da50
push 0xffffffffffffffff
push 0x40405c
lea ecx, [ebp - 0xac]
call fcn.004074b7
test al, al
jne 0x43da6a
push 0xed8
push ecx
mov ecx, 0x40400c
call fcn.0040f77d
pop ecx
push edx
push eax
push 0x402068
push 3
push ebx
push 0x43c
push dword [ebp + 0x20]
jmp 0x43ec8d
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0x94]
call fcn.00414444
test al, al
je 0x43ec32
mov ebx, dword [ebp + 0x20]
mov ecx, ebx
mov edx, dword [ebp + 0x28]
call fcn.004391cf
mov eax, dword [ebx]
push 3
push 0
push 0x13b2
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x488254]
mov ecx, ebx
call esi
lea eax, [ebp - 0xac]
push eax
push dword [ebp - 0x34]
lea eax, [ebp - 0xe8]
push eax
push 0x404078
push ebx
call fcn.0040f0f5
mov ecx, dword [0x486c2c]
add esp, 0x14
call fcn.0043cf83
mov ebx, dword [ebp - 0x14]
jmp 0x43d8f4
call dword [0x488254]
mov ecx, dword [ebp - 0x14]
call esi
mov cl, byte [ebp - 6]
mov dword [ebp - 0x8c], eax
mov byte [ebp - 0x88], cl
test eax, eax
jne 0x43db01
push 0xffffffffffffffff
push 0x40405c
lea ecx, [ebp - 0xac]
call fcn.004074b7
test al, al
jne 0x43db1b
mov esi, 0xe9a
jmp 0x43ec6f
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0x94]
call fcn.00414444
test al, al
je 0x43ec43
mov edi, dword [ebp + 0x20]
mov ecx, edi
mov edx, dword [ebp + 0x28]
call fcn.004391cf
mov eax, dword [edi]
push 3
push 0
push 0x13b1
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x488254]
mov ecx, edi
call esi
mov esi, dword [ebp - 0x34]
lea eax, [ebp - 0xac]
push eax
push esi
lea eax, [ebp - 0xe8]
push eax
push 0x404078
push edi
call fcn.0040f0f5
add esp, 0x14
cmp dword [0x484030], 5
jbe 0x43dbbf
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43dbbf
and dword [ebp - 0x14c], 0
lea eax, [ebp - 0x14c]
and dword [ebp - 0x148], 0
mov edx, 0x405151
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], ebx
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 0x2fe0045
push eax
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], 0x3fe
push eax
push ecx
push ecx
call fcn.00405d68
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0xe8]
call fcn.00407460
test al, al
je 0x43ec3c
push 0xffffffffffffffff
push 0
push esi
lea ecx, [ebp - 0x84]
call fcn.00407460
test al, al
je 0x43ec95
cmp dword [ebp - 0x40], 0
je 0x43dc15
lea eax, [ebp - 0x1dc]
push eax
lea ecx, [ebp - 0x84]
call fcn.0040786a
test al, al
je 0x43ec95
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x100]
push eax
push dword [ebp - 0xc]
call fcn.004142c4
test al, al
je 0x43dc3a
cmp dword [ebp - 0xf4], 0
lea eax, [ebp - 0x100]
jne 0x43dc40
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0x84]
call fcn.0040786a
test al, al
je 0x43ec95
jmp 0x43de0e
cmp byte [ebp - 0x29], 0
je 0x43de0b
mov eax, dword [edi]
push ebx
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x488254]
mov ecx, edi
call esi
mov cl, byte [ebp - 6]
mov dword [ebp - 0x8c], eax
mov byte [ebp - 0x88], cl
test eax, eax
jne 0x43dcbf
push 0xffffffffffffffff
push 0x40405c
lea ecx, [ebp - 0xac]
call fcn.004074b7
test al, al
jne 0x43dcd9
push 0xeeb
push ecx
mov ecx, 0x40400c
call fcn.0040f77d
pop ecx
push edx
push eax
push 0x402068
push 3
push 1
jmp 0x43da43
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0x94]
call fcn.00414444
test al, al
je 0x43ec5d
mov edi, dword [ebp + 0x20]
xor ebx, ebx
mov edx, dword [ebp + 0x28]
inc ebx
mov ecx, edi
mov dword [ebp - 0x3c], ebx
call fcn.004391cf
mov eax, dword [edi]
push 3
push 0
push 0x13b2
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x488254]
mov ecx, edi
call esi
mov esi, dword [ebp - 0x34]
lea eax, [ebp - 0xac]
push eax
push esi
lea eax, [ebp - 0xe8]
push eax
push 0x404078
push edi
call fcn.0040f0f5
add esp, 0x14
cmp dword [0x484030], 5
jbe 0x43dd83
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43dd83
and dword [ebp - 0x19c], 0
lea eax, [ebp - 0x19c]
and dword [ebp - 0x198], 0
mov edx, 0x405151
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], ebx
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 0x2ff0046
push eax
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], 0x3ff
push eax
push ecx
push ecx
call fcn.00405d68
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0xe8]
call fcn.00407460
test al, al
je 0x43ec4a
push 0xffffffffffffffff
push 0
push esi
lea ecx, [ebp - 0x84]
call fcn.00407460
test al, al
je 0x43ec95
cmp dword [ebp - 0x40], 0
je 0x43ddd9
lea eax, [ebp - 0x1dc]
push eax
lea ecx, [ebp - 0x84]
call fcn.0040786a
test al, al
je 0x43ec95
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x100]
push eax
push dword [ebp - 0xc]
call fcn.004142c4
test al, al
je 0x43dc3a
cmp dword [ebp - 0xf4], 0
je 0x43dc3a
lea eax, [ebp - 0x100]
jmp 0x43dc40
mov edi, dword [ebp + 0x20]
lea ecx, [ebp - 0xac]
call fcn.00407a45
and dword [ebp - 0x8c], 0
mov dword [ebp - 0x94], 0x4010c4
mov ecx, dword [0x486c2c]
call fcn.0043cf83
cmp byte [ebp - 0x51], 0
je 0x43e3fa
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x28], eax
test eax, eax
je 0x43de66
push eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x30]
call fcn.0040dedb
mov edi, eax
mov dword [ebp - 0x30], edi
jmp 0x43de73
lea ecx, [ebp - 0x50]
call fcn.0040de92
mov edi, eax
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp + 0x20]
mov ecx, ebx
mov edx, dword [ebp + 0x28]
call fcn.004391cf
mov eax, dword [ebx]
push 3
push 0
push 0x40c
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x488254]
mov ecx, ebx
call esi
push edi
lea eax, [ebp - 0x84]
push eax
push 0x4021c0
push ebx
call fcn.0040f0f5
add esp, 0x10
cmp dword [0x484030], 5
jbe 0x43df11
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43df11
and dword [ebp - 0x164], 0
lea eax, [ebp - 0x164]
and dword [ebp - 0x160], 0
mov edx, 0x405151
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 1
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0x2070048
push eax
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 7
push eax
push ecx
push ecx
call fcn.00405d68
push dword [ebp - 0x7c]
push dword [ebp - 0x1ec]
call dword [section..idata]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x48]
mov ebx, eax
neg ebx
sbb bl, bl
mov cl, byte [ecx + 0xb]
inc bl
test cl, 0x10
je 0x43e187
and cl, 0xf
cmp cl, 0xf
je 0x43e187
mov edi, dword [ebp + 0x20]
push 3
push 0
push 0x13a1
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x488254]
mov ecx, edi
call esi
push 0x401ef4
push edi
call fcn.0040f0f5
mov eax, dword [ebp - 0x28]
pop ecx
pop ecx
test eax, eax
je 0x43df8a
mov edx, dword [ebp - 0x24]
mov ecx, dword [edx + 0x30]
push dword [ecx + 0x2c]
push eax
call fcn.004140f0
jmp 0x43e3fa
cmp byte [ebp - 5], 0
mov eax, dword [ebp - 0x48]
mov byte [eax], 0xe5
je 0x43dfa8
push dword [ebp - 0xc]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x14]
call fcn.0043937b
mov byte [ebp - 5], 0
xor ebx, ebx
inc ebx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0xc], ecx
push ecx
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x488254]
mov ecx, dword [ebp - 0x14]
call esi
mov cl, byte [ebp - 6]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], cl
test eax, eax
jne 0x43d493
cmp byte [ebp - 5], 0
je 0x43e086
mov edx, dword [ebp + 0x28]
mov ecx, edi
mov dword [ebp - 0x3c], ebx
call fcn.004391cf
mov eax, dword [edi]
push 3
push 0
push 0x44f
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x488254]
mov ecx, edi
call esi
push dword [ebp - 0x34]
push 0x401f90
push edi
call fcn.0040f0f5
mov edx, dword [ebp - 0x38]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0xc]
call fcn.0043937b
cmp dword [0x484030], 5
jbe 0x43e086
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43e086
and dword [ebp - 0x144], 0
lea eax, [ebp - 0x144]
and dword [ebp - 0x140], 0
mov edx, 0x405151
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], ebx
push eax
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x2f0000a
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0x3f0
push eax
push ecx
push ecx
call fcn.00405d68
mov eax, dword [ebp - 0x14]
xor bl, bl
push dword [ebp - 0xc]
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x488254]
mov ecx, dword [ebp - 0x14]
call esi
mov bh, byte [ebp - 6]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], bh
test eax, eax
je 0x43eb87
mov edi, dword [ebp - 0xc]
cmp byte [eax], 0
je 0x43e0be
mov bl, 1
mov byte [eax], 0
mov eax, dword [ebp - 0x14]
inc edi
push edi
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x488254]
mov ecx, dword [ebp - 0x14]
call esi
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], bh
test eax, eax
jne 0x43e0b4
mov edi, dword [ebp + 0x20]
test bl, bl
je 0x43eb87
mov edx, dword [ebp + 0x28]
mov ecx, edi
call fcn.004391cf
mov eax, dword [edi]
push 3
push 0
push 0x432
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x488254]
mov ecx, edi
call esi
mov esi, dword [ebp - 0x34]
push esi
push 0x401f90
push edi
call fcn.0040f0f5
xor ebx, ebx
add esp, 0xc
inc ebx
cmp dword [0x484030], 5
mov dword [ebp - 0x3c], ebx
jbe 0x43eb8d
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43eb8d
and dword [ebp - 0x64], 0
lea eax, [ebp - 0x64]
and dword [ebp - 0x60], 0
mov edx, 0x405151
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], ebx
push eax
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x2f1000b
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0x3f1
push eax
push ecx
push ecx
call fcn.00405d68
jmp 0x43eb8d
push dword [ebp + 0x20]
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x68]
push dword [ebp + 0x18]
push dword [ebp + 0x10]
push eax
push edi
call fcn.0044042f
test al, al
je 0x43eae2
cmp dword [ebp - 0x68], 0
mov edi, dword [ebp + 0x20]
push 3
push 0
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
je 0x43e2c8
push 0x13a2
call dword [0x488254]
mov ecx, edi
call esi
push 0x401ef4
push edi
call fcn.0040f0f5
cmp dword [0x484030], 5
pop ecx
pop ecx
jbe 0x43e23a
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43e23a
and dword [ebp - 0x16c], 0
lea eax, [ebp - 0x16c]
and dword [ebp - 0x168], 0
mov edx, 0x405151
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 1
push eax
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x2070049
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 7
push eax
push ecx
push ecx
call fcn.00405d68
test bl, bl
je 0x43e2a5
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp - 0x68]
movzx ebx, word [eax]
xor eax, eax
cmp ax, bx
jae 0x43e271
mov eax, dword [ebp + 8]
mov ecx, ebx
mov edx, dword [ebp - 0x30]
add eax, 8
cmp dword [eax - 4], edx
jne 0x43e263
mov dword [eax - 4], edi
jmp 0x43e269
cmp dword [eax], edx
jne 0x43e269
mov dword [eax], edi
add eax, 0x34
sub ecx, 1
jne 0x43e259
mov eax, dword [ebp - 0x24]
push edi
mov esi, dword [eax + 0x30]
mov ecx, esi
call fcn.0040dedb
cmp eax, dword [esi + 0x28]
jae 0x43e2a2
push dword [ebp - 0x30]
mov ecx, esi
call fcn.0040dedb
mov dword [ebp - 0x30], eax
cmp eax, dword [esi + 0x28]
jae 0x43e2a2
push edi
mov ecx, esi
call fcn.0040dedb
mov edi, eax
jmp 0x43e247
mov edi, dword [ebp + 0x20]
mov eax, dword [ebp - 0x28]
push dword [ebp - 0x68]
test eax, eax
je 0x43e2bb
push eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x30]
jmp 0x43df80
lea ecx, [ebp - 0x50]
call fcn.004156e3
jmp 0x43e3fa
push 0x13a3
call dword [0x488254]
mov ecx, edi
call esi
push 0x401ef4
push edi
call fcn.0040f0f5
cmp dword [0x484030], 5
pop ecx
pop ecx
jbe 0x43e345
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43e345
and dword [ebp - 0x174], 0
lea eax, [ebp - 0x174]
and dword [ebp - 0x170], 0
mov edx, 0x405151
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 1
push eax
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x207004a
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 7
push eax
push ecx
push ecx
call fcn.00405d68
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x43e3d8
test bl, bl
je 0x43e3a8
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x30]
mov esi, dword [eax + 0x30]
mov eax, dword [ebp + 0xc]
movzx edi, word [eax]
xor eax, eax
xor ecx, ecx
cmp ax, di
jae 0x43e389
mov edx, dword [ebp + 8]
movzx eax, cx
imul eax, eax, 0x34
cmp dword [eax + edx + 8], ebx
je 0x43e383
inc ecx
cmp cx, di
jb 0x43e36f
jmp 0x43e389
movzx eax, cx
mov dword [ebp - 0x6c], eax
push ebx
mov ecx, esi
call fcn.0040dedb
cmp eax, dword [esi + 0x28]
jae 0x43e3a2
push ebx
mov ecx, esi
call fcn.0040dedb
mov ebx, eax
jmp 0x43e363
mov eax, dword [ebp - 0x28]
mov edi, dword [ebp + 0x20]
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebx + 0x30]
push dword [ecx + 0x2c]
push eax
call fcn.004140f0
push ecx
lea ecx, [ebp - 0x50]
call fcn.0040de92
mov ecx, dword [ebx + 0x30]
push eax
call fcn.00413cc1
imul eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x48]
mov dword [ecx + 0x1c], eax
jmp 0x43e3fa
mov eax, dword [ebp - 0x48]
and dword [ebp - 0x6c], 0
cmp byte [ebp - 5], 0
mov byte [eax], 0xe5
je 0x43e3fa
push dword [ebp - 0xc]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x14]
call fcn.0043937b
mov byte [ebp - 5], 0
mov ecx, dword [0x486c2c]
call fcn.0043cf83
push dword [ebp + 0x28]
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x84]
push edi
push dword [ebp + 0x14]
push dword [ebp + 0x18]
push eax
mov eax, dword [ebp + 0xc]
movzx eax, word [eax]
push eax
push dword [ebp + 8]
lea eax, [ebp - 0x50]
push dword [ebp - 0xc]
push dword [ebp - 0x40]
push eax
call fcn.0043ff54
test al, al
je 0x43eae2
mov ecx, dword [0x486c2c]
call fcn.0043cf83
mov esi, dword [ebp - 0x48]
mov al, byte [esi + 0xb]
test al, 0x10
je 0x43e702
and al, 0xf
cmp al, 0xf
je 0x43e702
lea ecx, [ebp - 0x50]
call fcn.0040de92
mov ebx, eax
mov dword [ebp - 0x28], ebx
cmp ebx, 2
jb 0x43e8e1
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 0x30]
cmp ebx, dword [edx + 0x24]
jae 0x43e8e1
and dword [ebp - 0x1a8], 0
mov ecx, dword [ebp - 0x1a4]
test ecx, ecx
je 0x43e4a5
call fcn.0040b1df
mov eax, dword [ebp - 0x24]
and dword [ebp - 0x1a4], 0
mov edx, dword [eax + 0x30]
and dword [ebp - 0x1a0], 0
lea ecx, [ebp - 0x264]
push ebx
push edx
push eax
push dword [eax + 0x20]
lea eax, [ebp - 0x1b0]
push eax
call fcn.00415794
test al, al
je 0x43ecfc
lea ecx, [ebp - 0x264]
call fcn.0040dec0
test al, al
je 0x43ecfc
cmp dword [ebp - 0x218], 0
jle 0x43e4f7
lea ecx, [ebp - 0x25c]
call fcn.004135fe
mov ebx, eax
jmp 0x43e4f9
xor ebx, ebx
mov dl, byte [ebp - 6]
mov dword [ebp - 0x108], ebx
mov byte [ebp - 0x104], dl
test ebx, ebx
je 0x43eae2
cmp dword [ebp - 0x218], 1
jle 0x43e529
lea ecx, [ebp - 0x25c]
call fcn.004135fe
lea edi, [eax + 0x20]
jmp 0x43e52b
xor edi, edi
mov dword [ebp - 0x118], edi
mov byte [ebp - 0x114], dl
test edi, edi
je 0x43eae2
push 0xb
push 0x402678
push ebx
call fcn.00483409
add esp, 0xc
test eax, eax
jne 0x43e75a
push 0xb
push 0x40266c
push edi
call fcn.00483409
add esp, 0xc
test eax, eax
jne 0x43e75a
mov al, byte [ebx + 0xb]
test al, 0x10
je 0x43e75a
push 0xf
pop ecx
and al, cl
cmp al, cl
je 0x43e75a
mov al, byte [edi + 0xb]
test al, 0x10
je 0x43e75a
and al, cl
cmp al, cl
je 0x43e75a
lea ecx, [ebp - 0x110]
call fcn.0040de92
cmp eax, dword [ebp - 0x28]
jne 0x43e5cc
lea ecx, [ebp - 0x120]
call fcn.0040de92
cmp eax, dword [ebp - 0x40]
jne 0x43e5cc
cmp dword [ebx + 0x1c], 0
jne 0x43e5cc
cmp dword [edi + 0x1c], 0
je 0x43e6b0
mov esi, dword [ebp + 0x20]
mov ecx, esi
mov edx, dword [ebp + 0x28]
call fcn.004391cf
mov eax, dword [esi]
push 3
push 0
push 0x13b0
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x488254]
mov ecx, dword [ebp + 0x20]
call esi
lea eax, [ebp - 0x84]
push eax
push 0x401f90
push dword [ebp + 0x20]
call fcn.0040f0f5
add esp, 0xc
mov dword [ebp - 0x3c], 1
cmp dword [0x484030], 5
jbe 0x43e673
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43e673
and dword [ebp - 0x17c], 0
lea eax, [ebp - 0x17c]
and dword [ebp - 0x178], 0
mov edx, 0x405151
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 1
push eax
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x20c004f
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0xc
push eax
push ecx
push ecx
call fcn.00405d68
push dword [ebp - 0x28]
lea ecx, [ebp - 0x110]
call fcn.004156e3
push dword [ebp - 0x40]
lea ecx, [ebp - 0x120]
call fcn.004156e3
and dword [ebx + 0x1c], 0
and dword [edi + 0x1c], 0
cmp dword [ebp + 0x18], 0
je 0x43e6b0
lea ecx, [ebp - 0x264]
call fcn.00415840
test al, al
je 0x43eca5
push 0x18
pop ecx
call fcn.0040b083
test eax, eax
je 0x43e6c7
mov ecx, eax
call fcn.004079f3
mov esi, eax
jmp 0x43e6c9
xor esi, esi
test esi, esi
je 0x43ecf2
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x84]
mov ecx, esi
push eax
call fcn.00407460
test al, al
je 0x43ecf2
mov edx, dword [ebp - 0x28]
lea ecx, [ebp - 0x5c]
push esi
call fcn.00439345
test al, al
je 0x43ece8
mov edi, dword [ebp + 0x20]
mov esi, dword [ebp - 0x24]
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x40], 0
jne 0x43e72a
push dword [ebp - 0x204]
push dword [ebp - 0xe0]
call dword [section..idata]
pop ecx
pop ecx
test eax, eax
je 0x43ea9d
push ecx
lea ecx, [ebp - 0x50]
call fcn.0040de92
mov ecx, dword [esi + 0x30]
push eax
call fcn.00413cc1
mov ecx, dword [ebp - 0x48]
mov edx, eax
mov cl, byte [ecx + 0xb]
test cl, 2
je 0x43ea73
mov eax, dword [ebp + 0x14]
inc dword [eax]
add dword [eax + 4], edx
jmp 0x43ea9d
mov edi, dword [ebp + 0x20]
xor ebx, ebx
mov edx, dword [ebp + 0x28]
inc ebx
mov ecx, edi
mov dword [ebp - 0x3c], ebx
call fcn.004391cf
mov eax, dword [edi]
push 3
push 0
push 0x3e9
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x488254]
mov ecx, edi
call esi
cmp dword [0x484030], 5
jbe 0x43e7e4
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43e7e4
and dword [ebp - 0x184], 0
lea eax, [ebp - 0x184]
and dword [ebp - 0x180], 0
mov edx, 0x405151
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], ebx
push eax
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x20c004d
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0xc
push eax
push ecx
push ecx
call fcn.00405d68
lea eax, [ebp - 0x84]
push eax
push 0x401f90
push edi
call fcn.0040f0f5
mov eax, dword [edi]
add esp, 0xc
mov esi, dword [eax + 0x10]
mov ecx, esi
push ebx
push 0
push 0x3ea
call dword [0x488254]
mov ecx, edi
call esi
push 0x401ef4
push edi
call fcn.0040f0f5
mov eax, dword [edi]
pop ecx
pop ecx
push ebx
mov esi, dword [eax + 0x18]
mov ecx, esi
call dword [0x488254]
mov ecx, edi
call esi
cmp dword [0x484030], 5
mov byte [ebp - 7], al
jbe 0x43e898
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43e895
and dword [ebp - 0x18c], 0
lea eax, [ebp - 0x18c]
and dword [ebp - 0x188], 0
mov edx, 0x405151
mov dword [ebp - 0x20], eax
movzx eax, byte [ebp - 7]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x10], 0x200004e
push eax
lea eax, [ebp - 0x10]
mov dword [ebp - 0x18], 0x400
push eax
lea eax, [ebp - 0x18]
push eax
push ecx
push ecx
call fcn.00405d68
mov al, byte [ebp - 7]
test al, al
je 0x43e8c4
mov eax, dword [ebp - 0x48]
mov esi, dword [ebp - 0x24]
push ecx
push dword [ebp - 0x28]
and byte [eax + 0xb], 0xef
mov ecx, dword [esi + 0x30]
call fcn.00413cc1
imul eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x48]
mov dword [ecx + 0x1c], eax
jmp 0x43e708
push dword [ebp + 0x10]
lea ecx, [ebp - 0x50]
call fcn.0040de92
mov edx, dword [ebp - 0x24]
mov ecx, eax
mov edx, dword [edx + 0x30]
call fcn.0043cf0e
jmp 0x43df8a
push 0xb
push 0x402678
push esi
call fcn.00483409
add esp, 0xc
test eax, eax
je 0x43dfa8
push 0xb
push 0x40266c
push esi
call fcn.00483409
add esp, 0xc
xor ebx, ebx
test eax, eax
je 0x43dfaa
mov eax, dword [edi]
push 3
push ebx
push 0x3e9
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x488254]
mov ecx, edi
call esi
cmp dword [0x484030], 5
jbe 0x43e98a
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43e98a
lea eax, [ebp - 0x194]
mov dword [ebp - 0x194], ebx
mov dword [ebp - 0x20], eax
mov edx, 0x405151
lea eax, [ebp - 0x20]
mov dword [ebp - 0x190], ebx
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x10], 0x20c004b
push eax
lea eax, [ebp - 0x10]
mov dword [ebp - 0x18], 0xc
push eax
lea eax, [ebp - 0x18]
inc ebx
push eax
push ecx
push ecx
mov dword [ebp - 0x1c], ebx
call fcn.00405d68
jmp 0x43e98d
xor ebx, ebx
inc ebx
lea eax, [ebp - 0x84]
push eax
push 0x401f90
push edi
call fcn.0040f0f5
mov eax, dword [edi]
add esp, 0xc
mov esi, dword [eax + 0x10]
mov ecx, esi
push ebx
push 0
push 0x3ea
call dword [0x488254]
mov ecx, edi
call esi
push 0x401ef4
push edi
call fcn.0040f0f5
mov eax, dword [edi]
pop ecx
pop ecx
push ebx
mov esi, dword [eax + 0x18]
mov ecx, esi
call dword [0x488254]
mov ecx, edi
call esi
cmp dword [0x484030], 5
mov byte [ebp - 7], al
jbe 0x43ea41
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43ea3e
and dword [ebp - 0x13c], 0
lea eax, [ebp - 0x13c]
and dword [ebp - 0x138], 0
mov edx, 0x405151
mov dword [ebp - 0x20], eax
movzx eax, byte [ebp - 7]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x10], 0x200004c
push eax
lea eax, [ebp - 0x10]
mov dword [ebp - 0x18], 0x400
push eax
lea eax, [ebp - 0x18]
push eax
push ecx
push ecx
call fcn.00405d68
mov al, byte [ebp - 7]
test al, al
je 0x43dfab
mov eax, dword [ebp - 0x48]
and byte [eax + 0xb], 0xef
cmp byte [ebp - 0x44], 0x20
jne 0x43ea5f
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov word [eax + 0x14], cx
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov word [eax + 0x1a], cx
mov eax, dword [ebp - 0x48]
and dword [eax + 0x1c], ecx
jmp 0x43dfab
mov al, cl
and al, 0xf
test cl, 0x10
je 0x43ea8b
cmp al, 0xf
je 0x43ea8b
mov eax, dword [ebp + 0x14]
inc dword [eax + 0x10]
add dword [eax + 0x14], edx
jmp 0x43ea9d
test cl, 8
je 0x43ea94
cmp al, 0xf
jne 0x43ea9d
mov eax, dword [ebp + 0x14]
inc dword [eax + 8]
add dword [eax + 0xc], edx
mov esi, dword [esi + 0x30]
mov ecx, dword [esi + 0x40]
cmp ecx, 0xffffffff
jne 0x43eaba
cmp dword [esi + 0x20], 0
je 0x43eabe
mov ecx, esi
call fcn.00413c48
mov ecx, eax
mov dword [esi + 0x40], ecx
test ecx, ecx
jne 0x43eac0
mov ecx, ebx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x14]
add eax, dword [edx + 0xc]
add eax, dword [edx + 4]
xor edx, edx
imul eax, eax, 0x64
div ecx
mov ecx, eax
call fcn.0043cf83
test al, al
jne 0x43dfa4
xor bl, bl
lea ecx, [ebp - 0xcc]
call fcn.00415904
lea ecx, [ebp - 0x264]
call fcn.00415775
lea ecx, [ebp - 0x1b0]
call fcn.0040f855
lea ecx, [ebp - 0x27c]
call fcn.00407a45
lea ecx, [ebp - 0x1f4]
call fcn.00407a45
lea ecx, [ebp - 0x20c]
call fcn.00407a45
lea ecx, [ebp - 0x1dc]
call fcn.00407a45
lea ecx, [ebp - 0x31c]
call fcn.00413095
lea ecx, [ebp - 0x1c4]
call fcn.0040f855
lea ecx, [ebp - 0x100]
call fcn.00407a45
lea ecx, [ebp - 0xe8]
call fcn.00407a45
lea ecx, [ebp - 0x84]
call fcn.00407a45
and dword [ebp - 0x48], 0
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 0x50], 0x4010c4
call fcn.00415775
pop edi
pop esi
mov al, bl
pop ebx
leave
ret 0x24
mov esi, dword [ebp - 0x34]
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x40], 0
je 0x43ebac
cmp dword [ebp + 0x18], 0
je 0x43ebac
lea ecx, [ebp - 0x2d4]
call fcn.00415840
test al, al
je 0x43edbc
test esi, esi
je 0x43d37e
mov eax, dword [esi]
push ebx
mov esi, dword [eax]
mov ecx, esi
call dword [0x488254]
mov ecx, dword [ebp - 0x34]
call esi
jmp 0x43d37e
push 0x401ef4
push 0x7e2
push edi
call fcn.0040f11b
add esp, 0xc
cmp dword [0x484030], 5
jbe 0x43eae2
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43eae2
xor ecx, ecx
mov dword [ebp - 0x58], 0x20c0009
lea eax, [ebp - 0x64]
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], ecx
mov edx, 0x405151
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x10], 0xc
jmp 0x43ed66
push 0xd17
jmp 0x43ed87
push 0xedd
jmp 0x43da2d
mov esi, 0xeb7
jmp 0x43ec72
mov esi, 0xe9f
jmp 0x43ec6f
push 0xf0a
push ecx
mov ecx, 0x40400c
call fcn.0040f77d
pop ecx
jmp 0x43ec7d
push 0xef0
jmp 0x43dca3
xor ebx, ebx
mov esi, 0xe87
inc ebx
mov edi, dword [ebp + 0x20]
mov ecx, 0x40400c
call fcn.0040f77d
push esi
push edx
push eax
push 0x402068
push 3
push ebx
push 0x43c
push edi
call fcn.0040f1b5
add esp, 0x20
lea ecx, [ebp - 0xac]
call fcn.00407a45
jmp 0x43eae2
cmp dword [0x484030], 5
jbe 0x43eae2
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43eae2
lea eax, [ebp - 0x64]
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x20], eax
mov edx, 0x405151
mov dword [ebp - 0x58], 0x2010050
mov dword [ebp - 0x10], 0x401
jmp 0x43ed5e
push 0x10d0
jmp 0x43d31e
push 0x10cb
jmp 0x43d31e
push 0x1043
push ecx
mov ecx, 0x40400c
call fcn.0040f77d
pop ecx
push edx
push eax
push 0x402068
push 3
push 1
jmp 0x43ed9d
cmp dword [0x484030], 5
jbe 0x43eae2
push ecx
push ecx
mov ecx, 0x484030
call fcn.00405c65
test al, al
je 0x43eae2
lea eax, [ebp - 0x64]
mov dword [ebp - 0x58], 0x2fb005b
mov dword [ebp - 0x20], eax
mov edx, 0x405151
movzx eax, byte [ebp - 7]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0x3fb
and dword [ebp - 0x64], 0
and dword [ebp - 0x60], 0
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x10]
push eax
push ecx
push ecx
call fcn.00405d68
jmp 0x43eae2
push 0xd3f
push ecx
mov ecx, 0x40400c
call fcn.0040f77d
pop ecx
push edx
push eax
push 0x402068
push 3
push ebx
push 0x43c
push edi
call fcn.0040f1b5
add esp, 0x20
jmp 0x43eae2
push 0x64
pop ecx
call fcn.0043cf83
test al, al
jne 0x43edcf
and dword [0x487218], 0
mov byte [0x487214], 0
jmp 0x43eae2
mov eax, dword [edi]
push 3
push 0
push 0x3ff
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x488254]
mov ecx, edi
call esi
push 0x401ef4
push edi
call fcn.0040f0f5
mov eax, dword [ebp + 0xc]
and dword [0x487218], 0
cmp dword [ebp - 0x3c], 0
pop ecx
pop ecx
mov ecx, dword [ebp - 0x6c]
mov word [eax], cx
mov byte [0x487214], 0
je 0x43eae4
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x18], 3
je 0x43eae4
mov dword [eax + 0x18], ebx
jmp 0x43eae4