Function at 0x520b0c
Capabilities:
Access peb ldr_data
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x21
push 0
push 0
dec ecx
jne 0x520b14
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x52284d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov ecx, dword [eax]
mov dl, 1
mov eax, dword [0x4403c0]
call fcn.00440470
mov dword [ebp - 8], eax
xor ecx, ecx
push ebp
push 0x522806
push dword fs:[ecx]
mov dword fs:[ecx], esp
push 1
mov ecx, 0x522864
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 6], al
push 0
mov ecx, 0x522888
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 7], al
push 0
lea eax, [ebp - 0x30]
push eax
mov ecx, 0x52289c
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x30]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xc
call fcn.00404a80
push 1
mov ecx, 0x5228b0
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x30], al
push 0
mov ecx, 0x5228c4
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x3c], al
push 0x3c
mov ecx, 0x5228dc
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov dword [edx + 0x20], eax
push 1
mov ecx, 0x5228f4
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x3d], al
push 1
mov ecx, 0x52290c
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x3e], al
push 1
mov ecx, 0x522924
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x3f], al
push 1
mov ecx, 0x52293c
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x40], al
push 0
mov ecx, 0x522954
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x41], al
push 0
mov ecx, 0x522970
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x42], al
push 0x52298c
lea eax, [ebp - 0x34]
push eax
mov ecx, 0x522998
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0x34]
lea edx, [ebp - 0x18]
call fcn.00409114
mov eax, dword [ebp - 0x18]
mov al, byte [eax]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x26], al
push 1
mov ecx, 0x5229b0
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x48], al
push 0x800
mov ecx, 0x5229c4
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov dword [edx + 0x4c], eax
call sub.kernel32.dll_GetACP
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov dword [edx + 0x34], eax
push 0
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x5229d8
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
cmp dword [ebp - 0x1c], 0
jne 0x520d87
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
call fcn.00524cec
jmp 0x520ec0
mov eax, dword [ebp - 0x1c]
mov edx, 0x5229ec
call fcn.00404e38
jne 0x520da8
lea eax, [ebp - 0x1c]
mov edx, 0x5229fc
call fcn.00404ac4
jmp 0x520ec0
mov eax, dword [ebp - 0x1c]
mov edx, 0x522a10
call fcn.00404e38
jne 0x520dc9
lea eax, [ebp - 0x1c]
mov edx, 0x522a24
call fcn.00404ac4
jmp 0x520ec0
mov eax, dword [ebp - 0x1c]
mov edx, 0x522a38
call fcn.00404e38
jne 0x520dea
lea eax, [ebp - 0x1c]
mov edx, 0x522a48
call fcn.00404ac4
jmp 0x520ec0
mov eax, dword [ebp - 0x1c]
mov edx, 0x522a58
call fcn.00404e38
jne 0x520e0b
lea eax, [ebp - 0x1c]
mov edx, 0x522a68
call fcn.00404ac4
jmp 0x520ec0
mov eax, dword [ebp - 0x1c]
mov edx, 0x522a7c
call fcn.00404e38
jne 0x520e2c
lea eax, [ebp - 0x1c]
mov edx, 0x522a90
call fcn.00404ac4
jmp 0x520ec0
mov eax, dword [ebp - 0x1c]
mov edx, 0x522aa4
call fcn.00404e38
jne 0x520e4a
lea eax, [ebp - 0x1c]
mov edx, 0x522ab4
call fcn.00404ac4
jmp 0x520ec0
mov eax, dword [ebp - 0x1c]
mov edx, 0x522ac8
call fcn.00404e38
jne 0x520e68
lea eax, [ebp - 0x1c]
mov edx, 0x522ad8
call fcn.00404ac4
jmp 0x520ec0
mov eax, dword [ebp - 0x1c]
mov edx, 0x522aec
call fcn.00404e38
jne 0x520e86
lea eax, [ebp - 0x1c]
mov edx, 0x522afc
call fcn.00404ac4
jmp 0x520ec0
mov eax, dword [ebp - 0x1c]
mov edx, 0x522b10
call fcn.00404e38
jne 0x520ea4
lea eax, [ebp - 0x1c]
mov edx, 0x522b20
call fcn.00404ac4
jmp 0x520ec0
mov eax, dword [ebp - 0x1c]
mov edx, 0x522b34
call fcn.00404e38
jne 0x520ec0
lea eax, [ebp - 0x1c]
mov edx, 0x522b44
call fcn.00404ac4
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 0x1c]
call fcn.00408ec4
mov edx, dword [ebp - 0x38]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0x28
call fcn.00404a80
push 1
mov ecx, 0x522b58
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x13], al
push 1
mov ecx, 0x522b7c
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x14], al
push 1
mov ecx, 0x522b90
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x18], al
push 1
mov ecx, 0x522ba0
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x19], al
push 1
mov ecx, 0x522bb0
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x10], al
mov eax, dword [0x5441b8]
cmp dword [eax], 0
je 0x520fba
mov eax, dword [0x5441b8]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov ecx, 0xa
cdq
idiv ecx
cmp eax, 3
je 0x520fba
push 1
mov ecx, 0x522bc8
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x15], al
jmp 0x520fc5
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov byte [eax + 0x15], 0
push 1
mov ecx, 0x522be0
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x11], al
push 1
mov ecx, 0x522bfc
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x16], al
push 0
mov ecx, 0x522c14
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x1a], al
push 1
mov ecx, 0x522c30
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 8], al
push 0
mov ecx, 0x522c48
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0xa], al
push 1
mov ecx, 0x522c5c
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 9], al
push 0x1f4
mov ecx, 0x522c74
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov dword [edx + 0x1c], eax
push 0
mov ecx, 0x522c84
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x17], al
mov ecx, 0x522c98
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
call fcn.00440afc
test al, al
je 0x5210f5
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov byte [eax + 0x12], 1
mov ecx, 0x522c98
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x50]
jmp 0x521114
push 1
mov ecx, 0x522cac
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x12], al
push 0x40
mov ecx, 0x522cc0
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov word [edx + 0x24], ax
mov eax, dword [0x54471c]
cmp dword [eax], 2
jne 0x521176
call fcn.004d37dc
test al, al
jne 0x521169
push 0x40
mov ecx, 0x522cc0
mov edx, 0x522b6c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov word [edx + 0x24], ax
jmp 0x521176
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov word [eax + 0x24], 1
xor eax, eax
mov dword [ebp - 0xc], eax
push 0
lea eax, [ebp - 0x18]
push eax
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 0xc]
call fcn.00409508
mov ecx, dword [ebp - 0x3c]
mov edx, 0x522cd4
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
cmp dword [ebp - 0x18], 0
je 0x5211e5
mov ecx, dword [0x548448]
mov dl, 1
mov eax, dword [0x48f24c]
call fcn.00490740
mov ebx, eax
mov edx, dword [ebp - 0x18]
mov eax, ebx
call fcn.00492654
mov eax, dword [ebp - 4]
mov dword [ebx + 0x8c], eax
mov dword [ebx + 0x88], 0x52fef8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c0]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00492b68
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x10
jne 0x52117b
push 0x900
mov ecx, 0x522ce8
mov edx, 0x522d00
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov word [edx + 0x76], ax
push 1
mov ecx, 0x522d18
mov edx, 0x522d00
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x79], al
mov ecx, 0x522d30
mov edx, 0x522d00
mov eax, dword [ebp - 8]
call fcn.00440afc
test al, al
je 0x5212b7
push 0
lea eax, [ebp - 0x18]
push eax
mov ecx, 0x522d30
mov edx, 0x522d00
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov ecx, 0x522d30
mov edx, 0x522d00
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x50]
cmp dword [ebp - 0x18], 0
jne 0x521287
lea eax, [ebp - 0x18]
mov edx, dword [0x544324]
mov edx, dword [edx]
call fcn.00404ac4
jmp 0x5212a3
mov eax, dword [0x544324]
push dword [eax]
push 0x522d44
push dword [ebp - 0x18]
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.00404dac
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0x7c
mov edx, dword [ebp - 0x18]
call fcn.00404a80
jmp 0x5212e6
mov eax, dword [0x544324]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x40]
push eax
mov ecx, 0x522d50
mov edx, 0x522d00
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x40]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0x7c
call fcn.00404a80
push 0
mov ecx, 0x522d64
mov edx, 0x522d00
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x7a], al
push 0
mov ecx, 0x522d78
mov edx, 0x522d00
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x80], al
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov byte [eax + 0x78], 0
mov ecx, 0x522d8c
mov edx, 0x522d00
mov eax, dword [ebp - 8]
call fcn.00440afc
test al, al
je 0x52138c
push 0
mov ecx, 0x522d8c
mov edx, 0x522d00
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
test al, al
je 0x52136d
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov byte [eax + 0x78], 2
jmp 0x521378
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov byte [eax + 0x78], 5
mov ecx, 0x522d8c
mov edx, 0x522d00
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x50]
jmp 0x5213ab
push 5
mov ecx, 0x522da0
mov edx, 0x522d00
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x78], al
push 0
mov ecx, 0x522c5c
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x8d], al
push 0
mov ecx, 0x522dd0
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x8e], al
push 0
mov ecx, 0x522de8
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x8f], al
push 0x3e8
mov ecx, 0x522e00
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov dword [edx + 0x90], eax
push 0xa
mov ecx, 0x522e18
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov ebx, eax
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov word [eax + 0x96], bx
mov eax, dword [0x5446e8]
movzx eax, bx
imul edx, eax, 0x3e8
jno 0x52146f
call fcn.00403b58
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x56c]
call fcn.0043ac44
push 1
mov ecx, 0x522e2c
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov word [edx + 0x94], ax
mov ecx, 0x522e44
mov edx, 0x522db8
mov eax, dword [ebp - 8]
call fcn.00440afc
test al, al
je 0x521535
push 1
mov ecx, 0x522e44
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, eax
xor eax, eax
cmp edx, 5
ja case.0x5214d3.0
jmp dword [edx*4 + 0x5214da]
mov eax, 4
jmp case.0x5214d3.0
mov eax, 0x100000
jmp case.0x5214d3.0
mov eax, 2
jmp case.0x5214d3.0
mov eax, 8
jmp case.0x5214d3.0
mov eax, 1
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov dword [edx + 0x9c], eax
mov ecx, 0x522e44
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x50]
jmp 0x521557
push 1
mov ecx, 0x522e58
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov dword [edx + 0x9c], eax
push 0
mov ecx, 0x522e6c
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x98], al
push 0
mov ecx, 0x522e84
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x99], al
push 0
mov ecx, 0x522e98
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x9a], al
push 1
mov ecx, 0x522eb0
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x9b], al
mov ecx, 0x522ec4
mov edx, 0x522db8
mov eax, dword [ebp - 8]
call fcn.00440afc
test al, al
je 0x521668
push 0
lea eax, [ebp - 0x18]
push eax
mov ecx, 0x522ec4
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov ecx, 0x522ec4
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x50]
cmp dword [ebp - 0x18], 0
jne 0x521636
lea eax, [ebp - 0x18]
mov edx, dword [0x544324]
mov edx, dword [edx]
call fcn.00404ac4
jmp 0x521652
mov eax, dword [0x544324]
push dword [eax]
push 0x522d44
push dword [ebp - 0x18]
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.00404dac
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xa0
mov edx, dword [ebp - 0x18]
call fcn.00404a80
jmp 0x521699
mov eax, dword [0x544324]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, 0x522ed4
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x44]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xa0
call fcn.00404a80
push 0
lea eax, [ebp - 0x48]
push eax
mov ecx, 0x522ee8
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x48]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xa8
call fcn.00404a80
lea edx, [ebp - 0x54]
xor eax, eax
call fcn.00402b68
mov eax, dword [ebp - 0x54]
lea edx, [ebp - 0x50]
call fcn.00409ce8
mov eax, dword [ebp - 0x50]
lea edx, [ebp - 0x4c]
call fcn.0040eda4
mov edx, dword [ebp - 0x4c]
lea eax, [ebp - 0x1c]
mov ecx, 0x522efc
call fcn.00404d38
mov eax, dword [ebp - 0x1c]
push eax
lea eax, [ebp - 0x58]
push eax
mov ecx, 0x522f10
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x58]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xa4
call fcn.00404a80
push 0
lea eax, [ebp - 0x5c]
push eax
mov ecx, 0x522f24
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x5c]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xac
call fcn.00404a80
push 0
mov ecx, 0x522f38
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0xb0], al
push 0x522f4c
lea eax, [ebp - 0x60]
push eax
mov ecx, 0x522f64
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x60]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xb4
call fcn.00404a80
push 1
mov ecx, 0x522f74
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0xb8], al
push 0x3c
mov ecx, 0x522f88
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov dword [edx + 0xbc], eax
push 0
mov ecx, 0x522fa0
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0xc0], al
push 0
lea eax, [ebp - 0x64]
push eax
mov ecx, 0x522fb4
mov edx, 0x522db8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x64]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xc4
call fcn.00404a80
push 1
mov ecx, 0x522fc4
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0xc8], al
lea ecx, [ebp - 0x14]
mov edx, 0x522fe8
mov eax, 0x522ff8
call fcn.00510c34
mov eax, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x68]
push eax
mov ecx, 0x523008
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x68]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xcc
call fcn.00404a80
push 0
lea eax, [ebp - 0x6c]
push eax
mov ecx, 0x523018
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x6c]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xd0
call fcn.00404a80
mov ecx, 0x523028
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
call fcn.00440afc
test al, al
jne 0x5218f0
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xd4
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov edx, dword [edx + 0xd0]
call fcn.00404a80
jmp 0x52191b
push 0
lea eax, [ebp - 0x70]
push eax
mov ecx, 0x523028
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x70]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xd4
call fcn.00404a80
push 0
lea eax, [ebp - 0x74]
push eax
mov ecx, 0x52303c
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x74]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xd8
call fcn.00404a80
push 0x52304c
lea eax, [ebp - 0x78]
push eax
mov ecx, 0x523058
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x78]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xdc
call fcn.00404a80
push 0
lea eax, [ebp - 0x7c]
push eax
mov ecx, 0x523068
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x7c]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xe0
call fcn.00404a80
push 1
mov ecx, 0x52307c
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0xc9], al
push 0
lea eax, [ebp - 0x80]
push eax
mov ecx, 0x523090
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x80]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xe8
call fcn.00404a80
mov ecx, 0x5230a0
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
call fcn.00440afc
test al, al
jne 0x521a23
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xec
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov edx, dword [edx + 0xe8]
call fcn.00404a80
jmp 0x521a54
push 0
lea eax, [ebp - 0x84]
push eax
mov ecx, 0x5230a0
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x84]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xec
call fcn.00404a80
push 0
lea eax, [ebp - 0x88]
push eax
mov ecx, 0x5230b4
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x88]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xf0
call fcn.00404a80
push 0x52304c
lea eax, [ebp - 0x8c]
push eax
mov ecx, 0x5230c4
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x8c]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xf4
call fcn.00404a80
push 0
lea eax, [ebp - 0x90]
push eax
mov ecx, 0x5230d4
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x90]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xf8
call fcn.00404a80
mov ecx, 0x5230e8
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
call fcn.00440afc
test al, al
je 0x521b66
push 0
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x5230e8
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
lea edx, [ebp - 0x98]
mov eax, dword [ebp - 0x1c]
call fcn.004d4f3c
mov eax, dword [ebp - 0x98]
lea ecx, [ebp - 0x94]
mov edx, 0x5230fc
call fcn.004d5154
mov edx, dword [ebp - 0x94]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xe4
call fcn.00404a80
mov ecx, 0x5230e8
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x50]
jmp 0x521ba2
push 0
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x52312c
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
lea edx, [ebp - 0x9c]
mov eax, dword [ebp - 0x1c]
call fcn.004c36f0
mov edx, dword [ebp - 0x9c]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xe4
call fcn.00404a80
mov ecx, 0x523138
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
call fcn.00440afc
test al, al
je 0x521c1e
push 0
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x523138
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
lea edx, [ebp - 0xa4]
mov eax, dword [ebp - 0x1c]
call fcn.004d4f3c
mov eax, dword [ebp - 0xa4]
mov edx, 0x5230fc
lea ecx, [ebp - 0xa0]
call fcn.004d5154
mov edx, dword [ebp - 0xa0]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xfc
call fcn.00404a80
mov ecx, 0x523138
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x50]
jmp 0x521c5a
push 0
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x52314c
mov edx, 0x522fd8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
lea edx, [ebp - 0xa8]
mov eax, dword [ebp - 0x1c]
call fcn.004c36f0
mov edx, dword [ebp - 0xa8]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0xfc
call fcn.00404a80
mov ecx, 0x523158
mov edx, 0x52316c
mov eax, dword [ebp - 8]
call fcn.00440afc
test al, al
je 0x521c91
push 1
mov ecx, 0x523158
mov edx, 0x52316c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x58], al
jmp 0x521cd4
push 0
mov ecx, 0x52318c
mov edx, 0x52316c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x58], al
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add byte [eax + 0x58], 1
jae 0x521cc2
call fcn.00403b58
mov ecx, 0x52318c
mov edx, 0x52316c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x50]
push 1
mov ecx, 0x5231a0
mov edx, 0x52316c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x64], al
push 0
lea eax, [ebp - 0xb0]
push eax
mov ecx, 0x5231b4
mov edx, 0x52316c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb0]
lea edx, [ebp - 0xac]
call fcn.004c36f0
mov edx, dword [ebp - 0xac]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0x5c
call fcn.00404a80
push 0
lea eax, [ebp - 0xb8]
push eax
mov ecx, 0x5230e8
mov edx, 0x52316c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xb8]
lea edx, [ebp - 0xb4]
call fcn.004c36f0
mov edx, dword [ebp - 0xb4]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0x60
call fcn.00404a80
push 0
lea eax, [ebp - 0xbc]
push eax
mov ecx, 0x5231c8
mov edx, 0x5231dc
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0xbc]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0x68
call fcn.00404a80
push 0
lea eax, [ebp - 0xc0]
push eax
mov ecx, 0x5231f4
mov edx, 0x5231dc
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0xc0]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0x6c
call fcn.00404a80
push 0
lea eax, [ebp - 0xc4]
push eax
mov ecx, 0x52320c
mov edx, 0x5231dc
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0xc4]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0x70
call fcn.00404a80
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov eax, dword [eax + 0x70]
call fcn.00404cec
test eax, eax
jle 0x521e50
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0xc], 1
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov eax, dword [eax + 0x70]
mov edx, dword [ebp - 0xc]
cmp byte [eax + edx - 1], 0x3b
jne 0x521e48
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0x70
call fcn.00404f44
mov edx, dword [ebp - 0xc]
mov byte [eax + edx - 1], 0x2c
inc dword [ebp - 0xc]
dec dword [ebp - 0x2c]
jne 0x521e1d
push 0
mov ecx, 0x523220
mov edx, 0x5231dc
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x75], al
push 3
mov ecx, 0x523238
mov edx, 0x52324c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x8c], al
call fcn.004d6068
push eax
mov ecx, 0x523264
mov edx, 0x52324c
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x81], al
push 1
mov ecx, 0x523278
mov edx, 0x523290
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x82], al
push 0xb
mov ecx, 0x5232a4
mov edx, 0x523290
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x83], al
push 1
mov ecx, 0x5232bc
mov edx, 0x5232d4
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x84], al
push 1
mov ecx, 0x5232fc
mov edx, 0x5232d4
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x87], al
push 1
mov ecx, 0x523318
mov edx, 0x5232d4
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x85], al
push 0
mov ecx, 0x52332c
mov edx, 0x5232d4
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov byte [edx + 0x86], al
mov eax, dword [0x5446e8]
mov eax, dword [eax]
cmp byte [eax + 0x87], 0
je 0x521fe0
lea edx, [ebp - 0xd0]
xor eax, eax
call fcn.00402b68
mov eax, dword [ebp - 0xd0]
lea edx, [ebp - 0xcc]
call fcn.00409ce8
mov eax, dword [ebp - 0xcc]
lea edx, [ebp - 0xc8]
call fcn.0040eda4
mov edx, dword [ebp - 0xc8]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0x88
mov ecx, 0x523340
call fcn.00404d38
jmp 0x522040
push 0
lea eax, [ebp - 0xd4]
push eax
mov ecx, 0x523350
mov edx, 0x5232d4
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0xd4]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0x88
call fcn.00404a80
lea edx, [ebp - 0xd8]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov eax, dword [eax + 0x88]
call fcn.0040edf8
mov edx, dword [ebp - 0xd8]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0x88
call fcn.00404a80
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov eax, dword [eax + 0x88]
call fcn.00409a2c
test al, al
jne 0x5220dd
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov eax, dword [eax + 0x88]
call fcn.00409a50
test al, al
jne 0x5220dd
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov byte [eax + 0x87], 1
lea edx, [ebp - 0xe4]
xor eax, eax
call fcn.00402b68
mov eax, dword [ebp - 0xe4]
lea edx, [ebp - 0xe0]
call fcn.00409ce8
mov eax, dword [ebp - 0xe0]
lea edx, [ebp - 0xdc]
call fcn.0040eda4
mov eax, dword [ebp - 0xdc]
push eax
mov ecx, 0x523340
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0x88
pop edx
call fcn.00404d38
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov eax, dword [eax + 0x88]
call fcn.00409a50
push 0
lea eax, [ebp - 0xe8]
push eax
mov ecx, 0x523364
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0xe8]
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0x38
call fcn.00404a80
push 1
mov ecx, 0x523374
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
test al, al
jne 0x522132
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3f8]
mov edx, dword [eax]
call dword [edx + 0x44]
push 1
mov ecx, 0x523384
mov edx, 0x522878
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
test al, al
jne 0x522158
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3fc]
mov edx, dword [eax]
call dword [edx + 0x44]
lea ecx, [ebp - 0x14]
mov edx, 0x523398
mov eax, 0x5233a8
call fcn.00510c34
mov ecx, dword [0x548448]
mov dl, 1
mov eax, dword [0x48f24c]
call fcn.00490740
mov ebx, eax
push 0x5233b8
push dword [ebp - 0x14]
push 0x5233b8
lea eax, [ebp - 0xec]
mov edx, 3
call fcn.00404dac
mov edx, dword [ebp - 0xec]
mov eax, ebx
call fcn.00492654
xor edx, edx
mov eax, ebx
call fcn.00492718
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x350]
mov edx, ebx
call fcn.00492b68
mov edx, 0x5233c4
mov eax, dword [ebp - 8]
call fcn.004404ac
test al, al
je 0x5223b1
mov dl, 1
mov eax, dword [0x4197c4]
call fcn.00403be8
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x5223aa
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x44]
xor eax, eax
mov dword [ebp - 0xc], eax
push 0
lea eax, [ebp - 0xf0]
push eax
lea edx, [ebp - 0xf4]
mov eax, dword [ebp - 0xc]
call fcn.00409508
mov ecx, dword [ebp - 0xf4]
mov edx, 0x5233c4
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0xf0]
lea edx, [ebp - 0x1c]
call fcn.00409114
cmp dword [ebp - 0x1c], 0
je 0x522248
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x38]
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 9
jne 0x522200
mov ecx, 0x5233d4
mov edx, 0x5233c4
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x50]
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x14]
cmp eax, 9
jne 0x52227d
mov edx, 8
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x48]
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x522394
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x350]
call fcn.00493198
xor eax, eax
mov dword [ebp - 0xc], eax
jmp 0x522379
lea ecx, [ebp - 0x20]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
lea eax, [ebp - 0x24]
call fcn.00404a2c
lea eax, [ebp - 0x28]
call fcn.00404a2c
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 0x20]
call fcn.00409d70
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x20]
call fcn.00409e04
cmp dword [ebp - 0x24], 0
je 0x5222e5
cmp dword [ebp - 0x28], 0
jne 0x5222f5
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x48]
jmp 0x522379
push 0x5233e0
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0xc]
add eax, 1
jno 0x52230d
call fcn.00403b58
call fcn.00409508
push dword [ebp - 0xf8]
push 0x5233ec
push dword [ebp - 0x20]
lea eax, [ebp - 0x18]
mov edx, 4
call fcn.00404dac
mov ecx, dword [0x548448]
mov dl, 1
mov eax, dword [0x48f24c]
call fcn.00490740
mov ebx, eax
mov edx, dword [ebp - 0x18]
mov eax, ebx
call fcn.00492654
mov eax, dword [ebp - 4]
mov dword [ebx + 0x8c], eax
mov dword [ebx + 0x88], 0x52a52c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x350]
mov edx, ebx
call fcn.00492b68
add dword [ebp - 0xc], 1
jno 0x522379
call fcn.00403b58
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x14]
sub eax, 1
jno 0x52238b
call fcn.00403b58
cmp eax, dword [ebp - 0xc]
jge 0x5222a5
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5223b1
mov eax, dword [ebp - 0x10]
call fcn.00403c18
ret
mov eax, dword [0x5446e8]
mov eax, dword [eax]
cmp byte [eax + 4], 0
je 0x522499
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x350]
call fcn.004927ec
test eax, eax
jle 0x522499
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x350]
xor edx, edx
call fcn.004927fc
cmp byte [eax + 0x39], 0
jne 0x522499
lea edx, [ebp - 0x100]
mov eax, dword [0x54447c]
mov eax, dword [eax]
call fcn.004a0d90
mov eax, dword [ebp - 0x100]
lea edx, [ebp - 0xfc]
call fcn.00409ce8
mov edx, dword [ebp - 0xfc]
lea eax, [ebp - 0x20]
mov ecx, 0x5233f8
call fcn.00404d38
mov eax, dword [ebp - 0x20]
call fcn.00409a1c
test al, al
je 0x522499
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x350]
call fcn.00493198
mov ecx, dword [0x548448]
mov dl, 1
mov eax, dword [0x48f24c]
call fcn.00490740
mov ebx, eax
lea eax, [ebp - 0x104]
mov ecx, dword [ebp - 0x20]
mov edx, 0x52340c
call fcn.00404d38
mov edx, dword [ebp - 0x104]
mov eax, ebx
call fcn.00492654
mov eax, dword [ebp - 4]
mov dword [ebx + 0x8c], eax
mov dword [ebx + 0x88], 0x52a52c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x350]
mov edx, ebx
call fcn.00492b68
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x23c]
call fcn.0041cc8c
push eax
mov eax, dword [0x5446e8]
mov eax, dword [eax]
add eax, 0x50
mov ecx, 1
mov edx, dword [0x4a1e54]
call fcn.00405dd0
add esp, 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x23c]
call fcn.0041cc8c
sub eax, 1
jno 0x5224e9
call fcn.00403b58
test eax, eax
jl 0x522528
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0xc], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e0]
mov edx, dword [ebp - 0xc]
call fcn.0045d130
call fcn.004576bc
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov edx, dword [edx + 0x50]
mov ecx, dword [ebp - 0xc]
mov word [edx + ecx*2], ax
inc dword [ebp - 0xc]
dec dword [ebp - 0x2c]
jne 0x5224f8
mov edx, 0x523418
mov eax, dword [ebp - 8]
call fcn.004404ac
test al, al
je 0x5227f0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x23c]
call fcn.0041cc8c
sub eax, 1
jno 0x52255b
call fcn.00403b58
test eax, eax
jl 0x52268f
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0xc], 0
xor eax, eax
push ebp
push 0x52266d
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
lea eax, [ebp - 0x18]
push eax
lea edx, [ebp - 0x108]
mov eax, dword [ebp - 0xc]
call fcn.00409508
mov ecx, dword [ebp - 0x108]
mov edx, 0x523418
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx]
lea edx, [ebp - 0x10c]
mov eax, dword [ebp - 0x18]
call fcn.00409114
mov edx, dword [ebp - 0x10c]
lea eax, [ebp - 0x18]
call fcn.00404ac4
cmp dword [ebp - 0x18], 0
je 0x522663
mov edx, dword [ebp - 0x18]
mov eax, 0x522d44
call fcn.00405030
mov ebx, eax
test ebx, ebx
jle 0x522602
mov eax, dword [ebp - 0x18]
call fcn.00404cec
mov ecx, eax
sub ecx, ebx
jno 0x5225ee
call fcn.00403b58
add ecx, 1
jno 0x5225f8
call fcn.00403b58
lea eax, [ebp - 0x18]
mov edx, ebx
call fcn.00404f8c
mov eax, dword [ebp - 0x18]
call fcn.00409644
mov ebx, eax
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov eax, dword [eax + 0x50]
mov edx, dword [ebp - 0xc]
mov word [eax + edx*2], bx
mov eax, dword [0x5446e8]
cmp bx, 1
ja 0x52263b
mov eax, dword [0x5446e8]
mov eax, dword [eax]
mov eax, dword [eax + 0x50]
mov edx, dword [ebp - 0xc]
mov word [eax + edx*2], 0x32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e0]
mov edx, dword [ebp - 0xc]
call fcn.0045d130
mov edx, dword [0x5446e8]
mov edx, dword [edx]
mov edx, dword [edx + 0x50]
mov ecx, dword [ebp - 0xc]
movzx edx, word [edx + ecx*2]
call fcn.00457720
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x522683
inc dword [ebp - 0xc]
dec dword [ebp - 0x2c]
jne 0x52256e
mov ecx, 0x523434
mov edx, 0x523418
mov eax, dword [ebp - 8]
call fcn.00440afc
test al, al
je 0x52274b
push 0xff
mov ecx, 0x523434
mov edx, 0x523418
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x23c]
call fcn.0041cc8c
sub eax, 2
jno 0x5226e0
call fcn.00403b58
test eax, eax
jle 0x522734
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0xc], 1
mov ecx, dword [ebp - 0xc]
mov eax, 1
shl eax, cl
test eax, ebx
jne 0x52272c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e0]
mov edx, dword [ebp - 0xc]
call fcn.0045d130
xor edx, edx
call fcn.00457720
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e0]
mov edx, dword [ebp - 0xc]
call fcn.0045d130
mov dword [eax + 0x2c], 0xfffffffe
inc dword [ebp - 0xc]
dec dword [ebp - 0x2c]
jne 0x5226ee
mov ecx, 0x523434
mov edx, 0x523418
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x50]
jmp 0x5227f0
mov ecx, 0x523448
mov edx, 0x523418
mov eax, dword [ebp - 8]
call fcn.00440afc
test al, al
je 0x5227f0
push 0xff
mov ecx, 0x523448
mov edx, 0x523418
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e0]
mov eax, dword [eax + 0x23c]
call fcn.0041cc8c
sub eax, 1
jno 0x52279c
call fcn.00403b58
test eax, eax
jle 0x5227f0
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0xc], 1
mov ecx, dword [ebp - 0xc]
mov eax, 1
shl eax, cl
test eax, ebx
jne 0x5227e8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e0]
mov edx, dword [ebp - 0xc]
call fcn.0045d130
xor edx, edx
call fcn.00457720
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e0]
mov edx, dword [ebp - 0xc]
call fcn.0045d130
mov dword [eax + 0x2c], 0xfffffffe
inc dword [ebp - 0xc]
dec dword [ebp - 0x2c]
jne 0x5227aa
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52280d
mov eax, dword [ebp - 8]
call fcn.00403c18
ret