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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x89ec
call fcn.0041b6e0
mov eax, dword [0x42f0f4]
xor eax, esp
mov dword [esp + 0x89e8], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
push 0
mov dword [esp + 0x18], 0
call dword [0x429220]
mov eax, dword [0x4301c4]
mov ebx, dword [0x4301c0]
mov dword [esp + 0x38], eax
cmp ebx, eax
jbe 0x416aa7
call fcn.0041a7c5
mov eax, dword [0x4301c4]
mov ebx, dword [0x4301c0]
mov esi, dword [0x4301b4]
cmp ebx, eax
jbe 0x416ab6
call fcn.0041a7c5
mov eax, dword [esp + 0x38]
mov ecx, dword [0x4301b4]
push eax
push esi
push ebx
push ecx
lea edx, [esp + 0xe8]
push edx
mov ecx, 0x4301b4
call fcn.0040f850
xor bl, bl
mov ecx, edi
mov esi, edi
cmp byte [edi], bl
je 0x416b6b
mov al, byte [esi]
cmp al, 0x22
je 0x416b52
cmp al, 0x3b
jne 0x416b61
test bl, bl
jne 0x416b61
mov eax, esi
sub eax, ecx
push eax
push ecx
lea ecx, [esp + 0x740]
mov dword [esp + 0x758], 0xf
mov dword [esp + 0x754], 0
mov byte [esp + 0x744], bl
call fcn.00403d50
lea ecx, [esp + 0x738]
push ecx
mov ecx, 0x4301b4
call fcn.00407440
cmp dword [esp + 0x750], 0x10
jb 0x416b4d
mov edx, dword [esp + 0x73c]
push edx
call fcn.0041a65d
add esp, 4
lea ecx, [esi + 1]
jmp 0x416b61
cmp esi, edi
je 0x416b5c
cmp byte [esi - 1], 0x5c
je 0x416b61
test bl, bl
sete bl
inc esi
cmp byte [esi], 0
jne 0x416ae4
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416b70
sub eax, esi
je 0x416be3
mov eax, ecx
mov dword [esp + 0x750], 0xf
mov dword [esp + 0x74c], 0
mov byte [esp + 0x73c], dl
lea esi, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x416ba0
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0x740]
call fcn.00403d50
lea eax, [esp + 0x738]
push eax
mov ecx, 0x4301b4
call fcn.00407440
cmp dword [esp + 0x750], 0x10
jb 0x416be3
mov ecx, dword [esp + 0x73c]
push ecx
call fcn.0041a65d
add esp, 4
mov ecx, dword [0x4301c4]
sub ecx, dword [0x4301c0]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
xor esi, esi
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x12], 1
mov dword [esp + 0x38], esi
je 0x41a245
cmp esi, eax
jb 0x416c1c
call fcn.0041a7c5
mov eax, dword [0x4301c0]
lea edx, [esi*8]
push 0xffffffffffffffff
sub edx, esi
lea eax, [eax + edx*4]
push 0
push eax
lea ecx, [esp + 0x728]
mov dword [esp + 0x740], 0xf
mov dword [esp + 0x73c], 0
mov byte [esp + 0x72c], 0
call fcn.00403a60
mov esi, dword [esp + 0x730]
mov ecx, esi
cmp esi, 0x17
jb 0x416c6f
mov ecx, 0x17
mov ebx, dword [esp + 0x734]
mov edi, dword [esp + 0x720]
mov eax, edi
cmp ebx, 0x10
jae 0x416c8b
lea eax, [esp + 0x720]
push ecx
push 0x429f7c
push eax
call fcn.00402800
add esp, 0xc
test eax, eax
jne 0x416cb7
cmp esi, 0x17
jb 0x416cb7
cmp esi, 0x17
setne al
test eax, eax
jne 0x416cb7
call fcn.0040e9a0
jmp 0x41a1fb
mov ecx, esi
cmp esi, 0x16
jb 0x416cc3
mov ecx, 0x16
mov eax, edi
cmp ebx, 0x10
jae 0x416cd1
lea eax, [esp + 0x720]
push ecx
push 0x429f64
push eax
call fcn.00402800
add esp, 0xc
test eax, eax
jne 0x416cfd
cmp esi, 0x16
jb 0x416d02
cmp esi, 0x16
setne al
test eax, eax
jne 0x416cfd
call fcn.00415b80
jmp 0x41a1fb
cmp esi, 0x16
jae 0x416d06
mov ecx, esi
jmp 0x416d0b
mov ecx, 0x16
mov eax, edi
cmp ebx, 0x10
jae 0x416d19
lea eax, [esp + 0x720]
push ecx
push 0x429f4c
push eax
call fcn.00402800
add esp, 0xc
test eax, eax
jne 0x416d45
cmp esi, 0x16
jb 0x416d45
cmp esi, 0x16
setne al
test eax, eax
jne 0x416d45
call fcn.0040ee90
jmp 0x41a1fb
push 0xa
push 0
lea ecx, [esp + 0x778]
push ecx
lea ecx, [esp + 0x728]
call fcn.0040b3f0
mov esi, dword [eax + 0x14]
mov ecx, esi
cmp ecx, esi
jae 0x416d66
mov ecx, esi
cmp esi, 0xa
jb 0x416d72
mov ecx, 0xa
mov edi, 0x10
cmp dword [eax + 0x18], edi
jb 0x416d81
mov eax, dword [eax + 4]
jmp 0x416d84
add eax, 4
push ecx
push 0x429f40
push eax
call fcn.00402800
add esp, 0xc
test eax, eax
jne 0x416dab
cmp esi, 0xa
jae 0x416da1
or eax, 0xffffffff
jmp 0x416da9
xor eax, eax
cmp esi, 0xa
setne al
test eax, eax
sete bl
cmp dword [esp + 0x788], edi
jb 0x416dc7
mov edx, dword [esp + 0x774]
push edx
call fcn.0041a65d
add esp, 4
test bl, bl
je 0x4175de
mov ecx, dword [esp + 0x734]
mov edx, dword [esp + 0x720]
cmp ecx, edi
jb 0x416ea2
mov edi, edx
test edx, edx
je 0x416e18
mov eax, edx
cmp ecx, 0x10
jae 0x416df9
lea eax, [esp + 0x720]
cmp eax, edi
ja 0x416e18
mov eax, edx
cmp ecx, 0x10
jae 0x416e0b
lea eax, [esp + 0x720]
mov ebx, dword [esp + 0x730]
add eax, ebx
cmp edi, eax
jbe 0x416e32
call fcn.0041a7c5
mov ecx, dword [esp + 0x734]
mov ebx, dword [esp + 0x730]
mov edx, dword [esp + 0x720]
mov eax, edx
cmp ecx, 0x10
jae 0x416e40
lea eax, [esp + 0x720]
lea esi, [ebx + eax]
test esi, esi
je 0x416e6d
mov eax, edx
cmp ecx, 0x10
jae 0x416e55
lea eax, [esp + 0x720]
cmp eax, esi
ja 0x416e6d
mov eax, edx
cmp ecx, 0x10
jae 0x416e67
lea eax, [esp + 0x720]
add eax, ebx
cmp esi, eax
jbe 0x416e87
call fcn.0041a7c5
mov ecx, dword [esp + 0x734]
mov ebx, dword [esp + 0x730]
mov edx, dword [esp + 0x720]
sub esi, edi
cmp esi, 0xc
jge 0x416eae
mov byte [esp + 0x12], 0
cmp ecx, 0x10
jb 0x41a215
push edx
jmp 0x41a20d
lea edi, [esp + 0x720]
jmp 0x416deb
cmp ecx, 0x10
jb 0x4170ee
mov esi, edx
test edx, edx
je 0x416ee3
mov eax, edx
cmp ecx, 0x10
jae 0x416ecb
lea eax, [esp + 0x720]
cmp eax, esi
ja 0x416ee3
mov eax, edx
cmp ecx, 0x10
jae 0x416edd
lea eax, [esp + 0x720]
add eax, ebx
cmp esi, eax
jbe 0x416ee8
call fcn.0041a7c5
lea eax, [esp + 0x71c]
push 0xc
lea ecx, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], esi
call fcn.004029b0
mov edx, dword [esp + 0x734]
mov eax, dword [esp + 0x720]
cmp edx, 0x10
jb 0x4170fa
mov esi, eax
test eax, eax
je 0x416f53
mov ecx, eax
cmp edx, 0x10
jae 0x416f36
lea ecx, [esp + 0x720]
cmp ecx, esi
ja 0x416f53
cmp edx, 0x10
jae 0x416f46
lea eax, [esp + 0x720]
mov ecx, dword [esp + 0x730]
add eax, ecx
cmp esi, eax
jbe 0x416f58
call fcn.0041a7c5
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xac]
push edx
push ecx
lea eax, [esp + 0x724]
push esi
push eax
lea edx, [esp + 0x28]
push edx
mov ecx, eax
call fcn.004038d0
mov edx, dword [esp + 0x734]
mov ecx, dword [esp + 0x720]
mov eax, ecx
cmp edx, 0x10
jae 0x416f99
lea eax, [esp + 0x720]
mov edi, dword [esp + 0x730]
lea ebx, [eax + edi]
test ebx, ebx
je 0x416fcd
mov eax, ecx
cmp edx, 0x10
jae 0x416fb5
lea eax, [esp + 0x720]
cmp eax, ebx
ja 0x416fcd
mov eax, ecx
cmp edx, 0x10
jae 0x416fc7
lea eax, [esp + 0x720]
add eax, edi
cmp ebx, eax
jbe 0x416fe7
call fcn.0041a7c5
mov edx, dword [esp + 0x734]
mov edi, dword [esp + 0x730]
mov ecx, dword [esp + 0x720]
cmp edx, 0x10
jb 0x417106
mov esi, ecx
test ecx, ecx
je 0x41701c
mov eax, ecx
cmp edx, 0x10
jae 0x417004
lea eax, [esp + 0x720]
cmp eax, esi
ja 0x41701c
mov eax, ecx
cmp edx, 0x10
jae 0x417016
lea eax, [esp + 0x720]
add edi, eax
cmp esi, edi
jbe 0x417028
call fcn.0041a7c5
mov edx, dword [esp + 0x734]
lea eax, [esp + 0x71c]
mov ecx, eax
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], esi
mov edi, esi
cmp esi, ebx
je 0x41704f
cmp byte [edi], 0x22
je 0x41704f
inc edi
cmp edi, ebx
jne 0x417045
mov ebx, dword [esp + 0x720]
mov eax, ebx
cmp edx, 0x10
jae 0x417064
lea eax, [esp + 0x720]
mov esi, dword [esp + 0x730]
add esi, eax
je 0x41709c
mov eax, ebx
cmp edx, 0x10
jae 0x41707d
lea eax, [esp + 0x720]
cmp eax, esi
ja 0x41709c
mov eax, ebx
cmp edx, 0x10
jae 0x41708f
lea eax, [esp + 0x720]
mov ebx, dword [esp + 0x730]
add ebx, eax
cmp esi, ebx
jbe 0x4170af
call fcn.0041a7c5
mov edx, dword [esp + 0x734]
mov ecx, dword [esp + 0xd0]
cmp ecx, 0xfffffffc
je 0x4170cf
test ecx, ecx
je 0x4170c3
lea eax, [esp + 0x71c]
cmp ecx, eax
je 0x4170cf
call fcn.0041a7c5
mov edx, dword [esp + 0x734]
cmp edi, esi
jne 0x417112
mov byte [esp + 0x12], 0
cmp edx, 0x10
jb 0x41a215
mov ecx, dword [esp + 0x720]
push ecx
jmp 0x41a20d
lea esi, [esp + 0x720]
jmp 0x416ebd
lea esi, [esp + 0x720]
jmp 0x416f28
lea esi, [esp + 0x720]
jmp 0x416ff6
mov ecx, dword [esp + 0x720]
cmp edx, 0x10
jb 0x41726e
mov esi, ecx
test ecx, ecx
je 0x417155
mov eax, ecx
cmp edx, 0x10
jae 0x417136
lea eax, [esp + 0x720]
cmp eax, esi
ja 0x417155
mov eax, ecx
cmp edx, 0x10
jae 0x417148
lea eax, [esp + 0x720]
mov edx, dword [esp + 0x730]
add edx, eax
cmp esi, edx
jbe 0x41715a
call fcn.0041a7c5
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0xd0]
push ecx
push edi
push ebx
lea eax, [esp + 0x728]
push esi
push eax
lea ecx, [esp + 0x768]
mov dword [esp + 0x780], 0xf
mov dword [esp + 0x77c], 0
mov byte [esp + 0x76c], 0
call fcn.00404160
mov edx, dword [esp + 0x734]
mov eax, dword [esp + 0x720]
cmp edx, 0x10
jae 0x4171b5
lea eax, [esp + 0x720]
mov ecx, dword [esp + 0x730]
lea esi, [ecx + eax]
test esi, esi
je 0x4171f3
mov eax, dword [esp + 0x720]
cmp edx, 0x10
jae 0x4171d6
lea eax, [esp + 0x720]
cmp eax, esi
ja 0x4171f3
mov eax, dword [esp + 0x720]
cmp edx, 0x10
jae 0x4171ed
lea eax, [esp + 0x720]
add ecx, eax
cmp esi, ecx
jbe 0x4171f8
call fcn.0041a7c5
lea edx, [esp + 0x71c]
cmp edx, 0xfffffffc
je 0x41720f
mov eax, edx
cmp eax, ebx
je 0x41720f
call fcn.0041a7c5
sub esi, edi
cmp esi, 3
jge 0x41727a
cmp dword [esp + 0x76c], 0x10
mov byte [esp + 0x12], 0
jb 0x417235
mov ecx, dword [esp + 0x758]
push ecx
call fcn.0041a65d
add esp, 4
cmp dword [esp + 0x734], 0x10
mov dword [esp + 0x76c], 0xf
mov dword [esp + 0x768], 0
mov byte [esp + 0x758], 0
jb 0x41a215
mov edx, dword [esp + 0x720]
push edx
jmp 0x41a20d
lea esi, [esp + 0x720]
jmp 0x417128
push 3
lea ecx, [esp + 0xa8]
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], edi
call fcn.004029b0
mov edx, dword [esp + 0x734]
mov eax, dword [esp + 0x720]
cmp edx, 0x10
jb 0x417464
mov esi, eax
test eax, eax
je 0x4172de
mov ecx, eax
cmp edx, 0x10
jae 0x4172c1
lea ecx, [esp + 0x720]
cmp ecx, esi
ja 0x4172de
cmp edx, 0x10
jae 0x4172d1
lea eax, [esp + 0x720]
mov ecx, dword [esp + 0x730]
add ecx, eax
cmp esi, ecx
jbe 0x4172e3
call fcn.0041a7c5
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa4]
push edx
push ecx
lea eax, [esp + 0x724]
push esi
push eax
lea edx, [esp + 0x28]
push edx
mov ecx, eax
call fcn.004038d0
mov ecx, dword [esp + 0x734]
mov edx, dword [esp + 0x720]
mov eax, edx
cmp ecx, 0x10
jae 0x417324
lea eax, [esp + 0x720]
mov edi, dword [esp + 0x730]
lea ebx, [edi + eax]
test ebx, ebx
je 0x417358
mov eax, edx
cmp ecx, 0x10
jae 0x417340
lea eax, [esp + 0x720]
cmp eax, ebx
ja 0x417358
mov eax, edx
cmp ecx, 0x10
jae 0x417352
lea eax, [esp + 0x720]
add eax, edi
cmp ebx, eax
jbe 0x417372
call fcn.0041a7c5
mov ecx, dword [esp + 0x734]
mov edi, dword [esp + 0x730]
mov edx, dword [esp + 0x720]
cmp ecx, 0x10
jb 0x417470
mov esi, edx
test edx, edx
je 0x4173a7
mov eax, edx
cmp ecx, 0x10
jae 0x41738f
lea eax, [esp + 0x720]
cmp eax, esi
ja 0x4173a7
mov eax, edx
cmp ecx, 0x10
jae 0x4173a1
lea eax, [esp + 0x720]
add eax, edi
cmp esi, eax
jbe 0x4173ba
call fcn.0041a7c5
mov ecx, dword [esp + 0x734]
mov edx, dword [esp + 0x720]
lea eax, [esp + 0x71c]
mov edi, eax
mov dword [esp + 0x1c], esi
cmp esi, ebx
je 0x4173da
jmp 0x4173d0
cmp byte [esi], 0x22
je 0x4173da
inc esi
cmp esi, ebx
jne 0x4173d0
mov eax, edx
cmp ecx, 0x10
jae 0x4173e8
lea eax, [esp + 0x720]
mov ebx, dword [esp + 0x730]
add ebx, eax
je 0x417420
mov eax, edx
cmp ecx, 0x10
jae 0x417401
lea eax, [esp + 0x720]
cmp eax, ebx
ja 0x417420
mov eax, edx
cmp ecx, 0x10
jae 0x417413
lea eax, [esp + 0x720]
mov ecx, dword [esp + 0x730]
add eax, ecx
cmp ebx, eax
jbe 0x417425
call fcn.0041a7c5
cmp edi, 0xfffffffc
je 0x41743e
test edi, edi
je 0x417439
lea edx, [esp + 0x71c]
cmp edi, edx
je 0x41743e
call fcn.0041a7c5
cmp esi, ebx
jne 0x41747c
mov byte [esp + 0x12], 0
lea ecx, [esp + 0x754]
call fcn.00403510
lea ecx, [esp + 0x71c]
call fcn.00403510
jmp 0x41a215
lea esi, [esp + 0x720]
jmp 0x4172b3
lea esi, [esp + 0x720]
jmp 0x417381
lea eax, [esp + 0x5ac]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push esi
push edi
push ecx
push edx
lea ecx, [esp + 0x748]
call fcn.004044c0
xor eax, eax
push 1
mov dword [esp + 0x58], eax
push 0x429f3c
lea ecx, [esp + 0x75c]
mov dword [esp + 0x58], 0
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov word [esp + 0x74], ax
mov dword [esp + 0x5c], 2
call fcn.00403c40
push 0x103
lea eax, [esp + 0x8ed]
push 0
push eax
mov byte [esp + 0x8f4], 0
call fcn.0041a470
mov ecx, dword [esp + 0x764]
mov esi, 0x10
add esp, 0xc
cmp dword [esp + 0x76c], esi
jae 0x417522
lea ecx, [esp + 0x758]
lea edx, [esp + 0x8e8]
lea esp, [esp]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x417530
lea ecx, [esp + 0x8e8]
push 0
mov dword [esp + 0x5c], ecx
push 0x429f38
lea ecx, [esp + 0x740]
call fcn.00403c40
push 0x103
lea edx, [esp + 0x7e5]
push 0
push edx
mov byte [esp + 0x7ec], 0
call fcn.0041a470
mov ecx, dword [esp + 0x748]
add esp, 0xc
cmp dword [esp + 0x750], esi
jae 0x41758e
lea ecx, [esp + 0x73c]
lea edx, [esp + 0x7e0]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x417595
lea edx, [esp + 0x50]
lea eax, [esp + 0x7e0]
mov ecx, 0x614
push edx
mov dword [esp + 0x60], eax
mov word [esp + 0x64], cx
call dword [0x4291c0]
test eax, eax
lea ecx, [esp + 0x738]
sete byte [esp + 0x12]
call fcn.00403510
lea ecx, [esp + 0x754]
jmp 0x41a1f6
push 8
push 0
lea eax, [esp + 0x778]
push eax
lea ecx, [esp + 0x728]
call fcn.0040b3f0
mov ecx, dword [eax + 0x14]
push 8
push 0x429f2c
push ecx
push 0
mov ecx, eax
call fcn.00402da0
test eax, eax
sete bl
cmp dword [esp + 0x788], edi
jb 0x417628
mov edx, dword [esp + 0x774]
push edx
call fcn.0041a65d
add esp, 4
test bl, bl
je 0x4179dc
mov edx, dword [esp + 0x734]
mov ebx, dword [esp + 0x720]
cmp edx, edi
jb 0x4176f9
mov edi, ebx
test ebx, ebx
je 0x417679
mov eax, ebx
cmp edx, 0x10
jae 0x41765a
lea eax, [esp + 0x720]
cmp eax, edi
ja 0x417679
mov eax, ebx
cmp edx, 0x10
jae 0x41766c
lea eax, [esp + 0x720]
mov ecx, dword [esp + 0x730]
add eax, ecx
cmp edi, eax
jbe 0x417693
call fcn.0041a7c5
mov edx, dword [esp + 0x734]
mov ecx, dword [esp + 0x730]
mov ebx, dword [esp + 0x720]
mov esi, ebx
cmp edx, 0x10
jae 0x4176a1
lea esi, [esp + 0x720]
add esi, ecx
je 0x4176cb
mov eax, ebx
cmp edx, 0x10
jae 0x4176b3
lea eax, [esp + 0x720]
cmp eax, esi
ja 0x4176cb
mov eax, ebx
cmp edx, 0x10
jae 0x4176c5
lea eax, [esp + 0x720]
add ecx, eax
cmp esi, ecx
jbe 0x4176de
call fcn.0041a7c5
mov edx, dword [esp + 0x734]
mov ebx, dword [esp + 0x720]
sub esi, edi
cmp esi, 0xa
jge 0x417705
mov byte [esp + 0x12], 0
cmp edx, 0x10
jb 0x41a215
push ebx
jmp 0x41a20d
lea edi, [esp + 0x720]
jmp 0x41764c
push 0xa
lea eax, [esp + 0x688]
push eax
lea ecx, [esp + 0x69c]
push ecx
lea ecx, [esp + 0x728]
call fcn.00403540
mov ecx, eax
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea edx, [esp + 0x6a4]
push edx
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
mov eax, dword [esp + 0x720]
mov ebx, 0x10
mov byte [esp + 0x13], 0x22
cmp dword [esp + 0x734], ebx
jae 0x41777e
lea eax, [esp + 0x720]
mov edx, dword [esp + 0x730]
lea ecx, [esp + 0x71c]
push ecx
add edx, eax
push edx
lea ecx, [esp + 0xf8]
call fcn.00402e80
lea eax, [esp + 0x6b4]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov edx, dword [esp + 0xf4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esp + 0xf4]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0xb0]
push ecx
call fcn.004037c0
mov eax, dword [esp + 0x738]
add esp, 0x18
cmp dword [esp + 0x734], ebx
jae 0x4177f3
lea eax, [esp + 0x720]
mov ecx, dword [esp + 0x730]
lea edx, [esp + 0x71c]
add ecx, eax
push edx
push ecx
lea ecx, [esp + 0xe0]
call fcn.00402e80
mov esi, dword [esp + 0x9c]
cmp esi, 0xfffffffc
je 0x41782f
test esi, esi
je 0x41782a
cmp esi, dword [esp + 0xd8]
je 0x41782f
call fcn.0041a7c5
mov edi, dword [esp + 0xa0]
lea ecx, [esp + 0x71c]
cmp edi, dword [esp + 0xdc]
jne 0x417855
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x41a215
lea edx, [esp + 0x6cc]
push edx
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea ecx, [esp + 0x748]
call fcn.004044c0
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x5e0]
push ecx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 3
jge 0x4178c1
lea ecx, [esp + 0x738]
mov byte [esp + 0x12], 0
call fcn.00403510
lea ecx, [esp + 0x71c]
call fcn.00403510
jmp 0x41a215
push 3
lea edx, [esp + 0x150]
push edx
lea ecx, [esp + 0xa4]
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x45c]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x15c]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x6e4]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x180]
push ecx
call fcn.004037c0
add esp, 0x18
lea edx, [esp + 0x46c]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea ecx, [esp + 0x79c]
call fcn.004044c0
mov ecx, dword [esp + 0x790]
cmp dword [esp + 0x7a4], ebx
jae 0x4179a3
lea ecx, [esp + 0x790]
mov eax, dword [esp + 0x73c]
cmp dword [esp + 0x750], ebx
jae 0x4179ba
lea eax, [esp + 0x73c]
push 0
push ecx
push eax
call dword [0x42907c]
lea ecx, [esp + 0x78c]
call fcn.00403510
lea ecx, [esp + 0x738]
jmp 0x41a1f6
push 0xc
push 0
lea eax, [esp + 0x778]
push eax
lea ecx, [esp + 0x728]
call fcn.0040b3f0
mov ecx, dword [eax + 0x14]
push 0xc
push 0x429f1c
push ecx
push 0
mov ecx, eax
call fcn.00402da0
test eax, eax
mov esi, edi
sete bl
cmp dword [esp + 0x788], esi
jb 0x417a28
mov edx, dword [esp + 0x774]
push edx
call fcn.0041a65d
add esp, 4
test bl, bl
je 0x417c17
cmp dword [esp + 0x730], 0x13
jae 0x417a50
lea ecx, [esp + 0x71c]
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x41a215
push 0xd
lea eax, [esp + 0x180]
push eax
lea ecx, [esp + 0x5f4]
push ecx
lea ecx, [esp + 0x728]
call fcn.00403540
mov ecx, eax
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea edx, [esp + 0x18c]
push edx
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
push 4
push 0
lea ecx, [esp + 0x740]
push ecx
lea ecx, [esp + 0x728]
call fcn.0040b3f0
lea edx, [esp + 0x738]
push 0x429f14
push edx
call fcn.004032a0
add esp, 8
test al, al
je 0x417ae0
mov ebx, 0x80000002
jmp 0x417b22
lea eax, [esp + 0x738]
push 0x429f0c
push eax
call fcn.004032a0
add esp, 8
test al, al
je 0x417b00
mov ebx, 0x80000001
jmp 0x417b22
lea ecx, [esp + 0x738]
push 0x429f04
push ecx
call fcn.004032a0
add esp, 8
test al, al
je 0x41789f
mov ebx, 0x80000000
push 6
lea edx, [esp + 0x480]
push edx
lea eax, [esp + 0x1a4]
push eax
lea ecx, [esp + 0x728]
call fcn.00403540
mov ecx, eax
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea ecx, [esp + 0x6ac]
push ecx
lea ecx, [esp + 0x720]
call fcn.00403540
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edi
push esi
push edx
push eax
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x730]
call fcn.004038d0
mov edx, dword [esp + 0x730]
dec edx
push edx
lea eax, [esp + 0x1b0]
push eax
lea ecx, [esp + 0x494]
push ecx
lea ecx, [esp + 0x728]
call fcn.00403540
mov ecx, eax
call fcn.00403050
lea edx, [esp + 0x1bc]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea ecx, [esp + 0x79c]
call fcn.004044c0
cmp dword [esp + 0x7a4], 0x10
mov eax, dword [esp + 0x790]
jae 0x417bee
lea eax, [esp + 0x790]
push eax
push ebx
call dword [0x42902c]
test eax, eax
je 0x417bff
mov byte [esp + 0x12], 0
lea ecx, [esp + 0x78c]
call fcn.00403510
lea ecx, [esp + 0x738]
jmp 0x41a1f6
push 0x429ef4
push 0xd
push 0
lea eax, [esp + 0x77c]
push eax
lea ecx, [esp + 0x72c]
call fcn.0040b3f0
push eax
call fcn.004032a0
add esp, 8
mov bl, al
cmp dword [esp + 0x788], esi
jb 0x417c58
mov ecx, dword [esp + 0x774]
push ecx
call fcn.0041a65d
add esp, 4
test bl, bl
je 0x418139
cmp dword [esp + 0x730], 0x14
lea ecx, [esp + 0x71c]
jae 0x417c80
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x41a215
push 0xe
lea edx, [esp + 0x600]
push edx
lea eax, [esp + 0x1d4]
push eax
call fcn.00403540
mov ecx, eax
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea ecx, [esp + 0x49c]
push ecx
lea ecx, [esp + 0x720]
call fcn.00403540
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edi
push esi
push edx
push eax
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x730]
call fcn.004038d0
push 4
push 0
lea edx, [esp + 0x75c]
push edx
lea ecx, [esp + 0x728]
call fcn.0040b3f0
lea eax, [esp + 0x754]
push 0x429f14
push eax
call fcn.004032a0
add esp, 8
test al, al
je 0x417d09
mov ebx, 0x80000002
jmp 0x417d4b
lea ecx, [esp + 0x754]
push 0x429f0c
push ecx
call fcn.004032a0
add esp, 8
test al, al
je 0x417d29
mov ebx, 0x80000001
jmp 0x417d4b
lea edx, [esp + 0x754]
push 0x429f04
push edx
call fcn.004032a0
add esp, 8
test al, al
je 0x417442
mov ebx, 0x80000000
push 6
lea eax, [esp + 0x1e0]
push eax
lea ecx, [esp + 0x6fc]
push ecx
lea ecx, [esp + 0x728]
call fcn.00403540
mov ecx, eax
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea edx, [esp + 0x1ec]
push edx
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x4ac]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x1fc]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x44]
push ecx
call fcn.004037c0
add esp, 0x18
lea edx, [esp + 0x60c]
push edx
lea ecx, [esp + 0x720]
call fcn.00403580
push eax
lea ecx, [esp + 0x34]
call fcn.00402900
test al, al
je 0x417e36
lea ecx, [esp + 0x754]
mov byte [esp + 0x12], 0
call fcn.00403510
lea ecx, [esp + 0x71c]
call fcn.00403510
jmp 0x41a215
lea eax, [esp + 0x20c]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea ecx, [esp + 0x7b8]
call fcn.004044c0
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x4c0]
push ecx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 3
jge 0x417ea2
lea ecx, [esp + 0x7a8]
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x417447
push 3
lea edx, [esp + 0x220]
push edx
lea ecx, [esp + 0x38]
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x6bc]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x22c]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x4cc]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x250]
push ecx
call fcn.004037c0
mov esi, dword [eax]
mov edi, dword [eax + 4]
add esp, 0x18
lea edx, [esp + 0x61c]
push edx
lea ecx, [esp + 0x720]
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], edi
call fcn.00403580
push eax
lea ecx, [esp + 0x34]
call fcn.00402900
test al, al
je 0x417f7f
lea ecx, [esp + 0x7a8]
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x417447
lea eax, [esp + 0x24c]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea ecx, [esp + 0x7d4]
call fcn.004044c0
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x4e0]
push ecx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 3
jge 0x417fef
mov byte [esp + 0x12], 0
lea ecx, [esp + 0x7c4]
call fcn.00403510
lea ecx, [esp + 0x7a8]
call fcn.00403510
jmp 0x417447
push 3
lea edx, [esp + 0x260]
push edx
lea ecx, [esp + 0x38]
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x704]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
mov ecx, dword [esp + 0x730]
dec ecx
push ecx
lea edx, [esp + 0x270]
push edx
lea eax, [esp + 0x4f4]
push eax
lea ecx, [esp + 0x728]
call fcn.00403540
mov ecx, eax
call fcn.00403050
lea ecx, [esp + 0x27c]
push ecx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x748]
call fcn.004044c0
lea ecx, [esp + 0x3c]
push ecx
push 0xf003f
push 0
lea ecx, [esp + 0x7b4]
call fcn.00402c60
push eax
push ebx
call dword [0x429010]
lea ecx, [esp + 0x738]
test eax, eax
je 0x4180cb
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x417fd2
mov edx, dword [esp + 0x74c]
inc edx
push edx
call fcn.00402c60
push eax
push 1
push 0
lea ecx, [esp + 0x7d4]
call fcn.00402c60
push eax
mov eax, dword [esp + 0x50]
push eax
call dword [0x429024]
lea ecx, [esp + 0x738]
test eax, eax
je 0x418110
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x417fd2
call fcn.00403510
lea ecx, [esp + 0x7c4]
call fcn.00403510
lea ecx, [esp + 0x7a8]
call fcn.00403510
lea ecx, [esp + 0x754]
jmp 0x41a1f6
push 0x429ee4
push 0xe
push 0
lea ecx, [esp + 0x77c]
push ecx
lea ecx, [esp + 0x72c]
call fcn.0040b3f0
push eax
call fcn.004032a0
add esp, 8
lea ecx, [esp + 0x770]
mov bl, al
call fcn.00403510
test bl, bl
je 0x418947
lea edx, [esp + 0x62c]
push edx
lea ecx, [esp + 0x720]
call fcn.00403540
push eax
lea eax, [esp + 0x290]
push eax
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 0x10
jge 0x4181c0
lea ecx, [esp + 0x71c]
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x41a215
push 0x10
lea ecx, [esp + 0x500]
push ecx
lea edx, [esp + 0x2a4]
push edx
lea ecx, [esp + 0x728]
call fcn.00403540
mov ecx, eax
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x714]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x2ac]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x50c]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x3c]
push ecx
call fcn.004037c0
add esp, 0x18
lea edx, [esp + 0x2bc]
push edx
lea ecx, [esp + 0x720]
call fcn.00403580
push eax
lea ecx, [esp + 0x2c]
call fcn.00402900
lea ecx, [esp + 0x71c]
test al, al
je 0x41829f
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x41a215
lea eax, [esp + 0x63c]
push eax
call fcn.00403540
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea ecx, [esp + 0x7d4]
call fcn.004044c0
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x2d0]
push ecx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 3
jge 0x418310
lea ecx, [esp + 0x7c4]
mov byte [esp + 0x12], 0
call fcn.00403510
lea ecx, [esp + 0x71c]
call fcn.00403510
jmp 0x41a215
push 3
lea edx, [esp + 0x520]
push edx
lea ecx, [esp + 0x30]
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x2dc]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x70c]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x2ec]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x540]
push ecx
call fcn.004037c0
mov esi, dword [eax]
mov edi, dword [eax + 4]
add esp, 0x18
lea edx, [esp + 0x2fc]
push edx
lea ecx, [esp + 0x720]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], edi
call fcn.00403580
push eax
lea ecx, [esp + 0x2c]
call fcn.00402900
test al, al
je 0x4183f9
lea ecx, [esp + 0x7c4]
mov byte [esp + 0x12], 0
call fcn.00403510
lea ecx, [esp + 0x71c]
call fcn.00403510
jmp 0x41a215
lea eax, [esp + 0x64c]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea ecx, [esp + 0x7b8]
call fcn.004044c0
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x310]
push ecx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 3
jge 0x418475
lea ecx, [esp + 0x7a8]
mov byte [esp + 0x12], 0
call fcn.00403510
lea ecx, [esp + 0x7c4]
call fcn.00403510
lea ecx, [esp + 0x71c]
call fcn.00403510
jmp 0x41a215
push 3
lea edx, [esp + 0x540]
push edx
lea ecx, [esp + 0x30]
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x31c]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x6dc]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x32c]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x560]
push ecx
call fcn.004037c0
mov esi, dword [eax]
mov edi, dword [eax + 4]
add esp, 0x18
lea edx, [esp + 0x33c]
push edx
lea ecx, [esp + 0x720]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], edi
call fcn.00403580
push eax
lea ecx, [esp + 0x2c]
call fcn.00402900
test al, al
je 0x41856a
lea ecx, [esp + 0x7a8]
mov byte [esp + 0x12], 0
call fcn.00403510
lea ecx, [esp + 0x7c4]
call fcn.00403510
lea ecx, [esp + 0x71c]
call fcn.00403510
jmp 0x41a215
lea eax, [esp + 0x65c]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea ecx, [esp + 0x748]
call fcn.004044c0
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x350]
push ecx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 3
jge 0x4185f2
mov byte [esp + 0x12], 0
lea ecx, [esp + 0x738]
call fcn.00403510
lea ecx, [esp + 0x7a8]
call fcn.00403510
lea ecx, [esp + 0x7c4]
call fcn.00403510
lea ecx, [esp + 0x71c]
call fcn.00403510
jmp 0x41a215
push 3
lea edx, [esp + 0x560]
push edx
lea ecx, [esp + 0x30]
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x35c]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x6fc]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x36c]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x580]
push ecx
call fcn.004037c0
mov esi, dword [eax]
mov edi, dword [eax + 4]
add esp, 0x18
lea edx, [esp + 0x37c]
push edx
lea ecx, [esp + 0x720]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], edi
call fcn.00403580
push eax
lea ecx, [esp + 0x2c]
call fcn.00402900
test al, al
je 0x4186f3
lea ecx, [esp + 0x738]
mov byte [esp + 0x12], 0
call fcn.00403510
lea ecx, [esp + 0x7a8]
call fcn.00403510
lea ecx, [esp + 0x7c4]
call fcn.00403510
lea ecx, [esp + 0x71c]
call fcn.00403510
jmp 0x41a215
lea eax, [esp + 0x66c]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea ecx, [esp + 0x79c]
call fcn.004044c0
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x390]
push ecx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 3
jge 0x418757
lea ecx, [esp + 0x78c]
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x4185bd
push 3
lea edx, [esp + 0x580]
push edx
lea ecx, [esp + 0x30]
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x39c]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x6ec]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x3ac]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x5a0]
push ecx
call fcn.004037c0
add esp, 0x18
lea edx, [esp + 0x3bc]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea ecx, [esp + 0x780]
call fcn.004044c0
lea eax, [esp + 0x770]
push eax
lea ecx, [esp + 0x54]
push ecx
call fcn.0040b930
add esp, 8
mov ecx, eax
call fcn.004095f0
push eax
lea edx, [esp + 0x790]
push edx
lea eax, [esp + 0xbc]
push eax
call fcn.0040b930
add esp, 8
mov ecx, eax
call fcn.004095f0
push eax
lea ecx, [esp + 0x740]
push ecx
lea edx, [esp + 0x108]
push edx
call fcn.0040b930
add esp, 8
mov ecx, eax
call fcn.004095f0
push eax
lea eax, [esp + 0x7b4]
push eax
lea ecx, [esp + 0x128]
push ecx
call fcn.0040b930
add esp, 8
mov ecx, eax
call fcn.004095f0
push eax
lea edx, [esp + 0x7d4]
push edx
lea eax, [esp + 0x768]
push eax
call fcn.0040b930
add esp, 8
mov ecx, eax
call fcn.004095f0
push eax
call fcn.0040d180
add esp, 0x14
test al, al
lea ecx, [esp + 0x754]
sete bl
call fcn.004035b0
lea ecx, [esp + 0x118]
call fcn.004035b0
lea ecx, [esp + 0xfc]
call fcn.004035b0
lea ecx, [esp + 0xb4]
call fcn.004035b0
lea ecx, [esp + 0x50]
call fcn.004035b0
test bl, bl
je 0x41890b
mov byte [esp + 0x12], 0
lea ecx, [esp + 0x770]
call fcn.00403510
lea ecx, [esp + 0x78c]
call fcn.00403510
lea ecx, [esp + 0x738]
call fcn.00403510
lea ecx, [esp + 0x7a8]
call fcn.00403510
lea ecx, [esp + 0x7c4]
jmp 0x41a1f6
push 0x429ed0
push 0x13
push 0
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x72c]
call fcn.0040b3f0
push eax
call fcn.004032a0
add esp, 8
lea ecx, [esp + 0x50]
mov bl, al
call fcn.00403510
lea ecx, [esp + 0x71c]
test bl, bl
je 0x4194c4
lea edx, [esp + 0x67c]
push edx
call fcn.00403540
push eax
lea eax, [esp + 0x3d0]
push eax
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 0x15
jge 0x4189c8
lea ecx, [esp + 0x71c]
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x41a215
push 0x15
lea ecx, [esp + 0x5a0]
push ecx
lea edx, [esp + 0x3e4]
push edx
lea ecx, [esp + 0x728]
call fcn.00403540
mov ecx, eax
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x6c4]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x3ec]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x134]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.004037c0
add esp, 0x18
lea edx, [esp + 0x3fc]
push edx
lea ecx, [esp + 0x720]
call fcn.00403580
push eax
lea ecx, [esp + 0x24]
call fcn.00402900
lea ecx, [esp + 0x71c]
test al, al
je 0x418aa7
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x41a215
lea eax, [esp + 0x68c]
push eax
call fcn.00403540
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea ecx, [esp + 0x764]
call fcn.004044c0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x410]
push ecx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 3
jl 0x417442
push 3
lea edx, [esp + 0x5c0]
push edx
lea ecx, [esp + 0x28]
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x41c]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x6d4]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x42c]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x5e0]
push ecx
call fcn.004037c0
mov esi, dword [eax]
mov edi, dword [eax + 4]
add esp, 0x18
lea edx, [esp + 0x43c]
push edx
lea ecx, [esp + 0x720]
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], edi
call fcn.00403580
push eax
lea ecx, [esp + 0x24]
call fcn.00402900
test al, al
jne 0x417442
lea eax, [esp + 0x69c]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea ecx, [esp + 0x7d4]
call fcn.004044c0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x450]
push ecx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 3
jge 0x418c29
lea ecx, [esp + 0x7c4]
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x417447
push 3
lea edx, [esp + 0x140]
push edx
lea ecx, [esp + 0x28]
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x144]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x154]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x164]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x188]
push ecx
call fcn.004037c0
mov esi, dword [eax]
mov edi, dword [eax + 4]
add esp, 0x18
lea edx, [esp + 0x184]
push edx
lea ecx, [esp + 0x720]
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], edi
call fcn.00403580
push eax
lea ecx, [esp + 0x24]
call fcn.00402900
test al, al
je 0x418d06
lea ecx, [esp + 0x7c4]
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x417447
lea eax, [esp + 0x194]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea ecx, [esp + 0x7b8]
call fcn.004044c0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x1a8]
push ecx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 3
jge 0x418d76
lea ecx, [esp + 0x7a8]
mov byte [esp + 0x12], 0
call fcn.00403510
lea ecx, [esp + 0x7c4]
call fcn.00403510
jmp 0x417447
push 3
lea edx, [esp + 0x1b8]
push edx
lea ecx, [esp + 0x28]
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x1c4]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x1d4]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x1e4]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x208]
push ecx
call fcn.004037c0
mov esi, dword [eax]
mov edi, dword [eax + 4]
add esp, 0x18
lea edx, [esp + 0x204]
push edx
lea ecx, [esp + 0x720]
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], edi
call fcn.00403580
push eax
lea ecx, [esp + 0x24]
call fcn.00402900
test al, al
je 0x418e5f
lea ecx, [esp + 0x7a8]
mov byte [esp + 0x12], 0
call fcn.00403510
lea ecx, [esp + 0x7c4]
call fcn.00403510
jmp 0x417447
lea eax, [esp + 0x214]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea ecx, [esp + 0x748]
call fcn.004044c0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x228]
push ecx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 3
jge 0x418edb
mov byte [esp + 0x12], 0
lea ecx, [esp + 0x738]
call fcn.00403510
lea ecx, [esp + 0x7a8]
call fcn.00403510
lea ecx, [esp + 0x7c4]
call fcn.00403510
jmp 0x417447
push 3
lea edx, [esp + 0x238]
push edx
lea ecx, [esp + 0x28]
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x244]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x254]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x264]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x288]
push ecx
call fcn.004037c0
mov esi, dword [eax]
mov edi, dword [eax + 4]
add esp, 0x18
lea edx, [esp + 0x284]
push edx
lea ecx, [esp + 0x720]
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], edi
call fcn.00403580
push eax
lea ecx, [esp + 0x24]
call fcn.00402900
test al, al
je 0x418fd0
lea ecx, [esp + 0x738]
mov byte [esp + 0x12], 0
call fcn.00403510
lea ecx, [esp + 0x7a8]
call fcn.00403510
lea ecx, [esp + 0x7c4]
call fcn.00403510
jmp 0x417447
lea eax, [esp + 0x294]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea ecx, [esp + 0x79c]
call fcn.004044c0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x2a8]
push ecx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 3
jge 0x419034
lea ecx, [esp + 0x78c]
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x418eb2
push 3
lea edx, [esp + 0x2b8]
push edx
lea ecx, [esp + 0x28]
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x2c4]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x2d4]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x2e4]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x308]
push ecx
call fcn.004037c0
mov esi, dword [eax]
mov edi, dword [eax + 4]
add esp, 0x18
lea edx, [esp + 0x304]
push edx
lea ecx, [esp + 0x720]
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], edi
call fcn.00403580
push eax
lea ecx, [esp + 0x24]
call fcn.00402900
test al, al
je 0x419111
lea ecx, [esp + 0x78c]
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x418eb2
lea eax, [esp + 0x314]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea ecx, [esp + 0x780]
call fcn.004044c0
lea eax, [esp + 0xfc]
push eax
call fcn.004103b0
push 0x7fff
xor ebx, ebx
lea ecx, [esp + 0x9f9]
push ebx
push ecx
mov byte [esp + 0xa00], 0
call fcn.0041a470
push 0x40
xor eax, eax
lea edx, [esp + 0x68]
push ebx
push edx
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x6c], ebx
call fcn.0041a470
add esp, 0x1c
lea ecx, [esp + 0x754]
call fcn.00402c60
lea edx, [esp + 0x9f0]
sub edx, eax
jmp 0x4191b0
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4191b0
lea edi, [esp + 0x9f0]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4191c2
mov ax, word [0x429cb4]
lea ecx, [esp + 0x7c4]
mov word [edi], ax
call fcn.00402c60
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4191e1
lea edi, [esp + 0x9f0]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4191f2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edx, [esp + 0xe0]
push edx
lea eax, [esp + 0x54]
push eax
push ebx
push ebx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push ebx
push ebx
mov ecx, 1
mov word [esp + 0x9c], cx
push ebx
lea ecx, [esp + 0xa10]
push ecx
push ebx
mov dword [esp + 0x78], 0x44
mov dword [esp + 0xa4], 0x41
call dword [0x429078]
test eax, eax
jne 0x41927b
lea ecx, [esp + 0xfc]
mov byte [esp + 0x12], al
call fcn.00405c80
lea ecx, [esp + 0x770]
call fcn.00403510
lea ecx, [esp + 0x78c]
call fcn.00403510
jmp 0x418eb2
mov edx, dword [esp + 0xe4]
mov esi, dword [0x4290a8]
push edx
call esi
mov eax, dword [esp + 0xe0]
push 0xffffffffffffffff
push eax
call dword [0x429040]
mov ecx, dword [esp + 0xe0]
push ecx
call esi
lea ecx, [esp + 0x754]
call fcn.00402c60
mov esi, dword [0x42905c]
push eax
call esi
mov edi, dword [0x429070]
test eax, eax
jne 0x4192db
push 0x32
call edi
lea ecx, [esp + 0x754]
call fcn.00402c60
push eax
call esi
test eax, eax
je 0x4192c4
lea ecx, [esp + 0xb4]
call fcn.004057b0
xor esi, esi
lea esp, [esp]
lea ecx, [esp + 0xb4]
call fcn.0040f9a0
lea edx, [esp + 0x118]
push edx
call fcn.00410680
add esp, 4
push eax
lea ecx, [esp + 0xb8]
call fcn.0040fb20
lea ecx, [esp + 0x118]
call fcn.00405c80
lea ecx, [esp + 0xb4]
call fcn.00402930
cmp eax, 1
je 0x419340
push 0x50
call edi
inc esi
cmp esi, 5
jl 0x4192f0
lea ecx, [esp + 0xb4]
call fcn.00402930
test eax, eax
jne 0x4193b3
sub esp, 0x18
mov eax, esp
mov dword [esp + 0x30], esp
push eax
call fcn.004103b0
sub esp, 0x14
lea edx, [esp + 0x12c]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
call fcn.0040f760
lea eax, [esp + 0x148]
push eax
call fcn.00410170
add esp, 0x34
push eax
lea ecx, [esp + 0xb8]
call fcn.0040fb20
lea ecx, [esp + 0x118]
call fcn.00405c80
lea ecx, [esp + 0xb4]
call fcn.00402c70
test al, al
je 0x4193b3
mov byte [esp + 0x12], 0
lea ecx, [esp + 0xb4]
call fcn.00402930
cmp eax, 1
jbe 0x41940d
xor esi, esi
mov byte [esp + 0x12], 0
cmp eax, ebx
jbe 0x41940d
mov edi, dword [0x42902c]
jmp 0x4193e0
push esi
lea ecx, [esp + 0xb8]
call fcn.00402ca0
mov ecx, eax
call fcn.00402c60
push eax
push 0x80000002
call edi
lea ecx, [esp + 0xb4]
inc esi
call fcn.00402930
cmp esi, eax
jb 0x4193e0
lea ecx, [esp + 0xb4]
call fcn.00402930
cmp eax, 1
jne 0x419464
sub esp, 0x1c
lea edx, [esp + 0x78c]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call fcn.004042f0
lea eax, [esp + 0x7a8]
push eax
lea ecx, [esp + 0x758]
push ecx
lea edx, [esp + 0x7cc]
push edx
lea eax, [esp + 0xdc]
push eax
call fcn.00412430
add esp, 0x2c
test al, al
jne 0x419464
mov byte [esp + 0x12], al
lea ecx, [esp + 0xb4]
call fcn.00405c80
lea ecx, [esp + 0xfc]
call fcn.00405c80
lea ecx, [esp + 0x770]
call fcn.00403510
lea ecx, [esp + 0x78c]
call fcn.00403510
lea ecx, [esp + 0x738]
call fcn.00403510
lea ecx, [esp + 0x7a8]
call fcn.00403510
lea ecx, [esp + 0x7c4]
call fcn.00403510
lea ecx, [esp + 0x754]
jmp 0x41a1f6
push 0
push 0x429ec0
call fcn.00403020
cmp eax, 0xffffffff
je 0x4194df
mov byte [esp + 0x12], 1
jmp 0x41a1fb
push 0
push 0x429eb0
lea ecx, [esp + 0x724]
call fcn.00403020
cmp eax, 0xffffffff
je 0x419501
mov byte [esp + 0x12], 0
jmp 0x41a1fb
push 0x429e90
push 0x1d
push 0
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x72c]
call fcn.0040b3f0
push eax
call fcn.004032a0
add esp, 8
lea ecx, [esp + 0x50]
mov bl, al
call fcn.00403510
test bl, bl
je 0x41974e
push 0x104
lea edx, [esp + 0x7e4]
push edx
push 0
call dword [0x429074]
push eax
call dword [0x429060]
test eax, eax
je 0x4194f7
lea eax, [esp + 0x7e0]
push eax
lea ecx, [esp + 0x73c]
call fcn.00404670
lea ecx, [esp + 0x324]
push ecx
lea ecx, [esp + 0x73c]
mov byte [esp + 0x17], 0x5c
call fcn.00403580
mov edi, dword [eax]
mov ebx, dword [eax + 4]
lea edx, [esp + 0x334]
push edx
lea ecx, [esp + 0x73c]
call fcn.00409d20
mov esi, eax
lea eax, [esp + 0x344]
push eax
lea ecx, [esp + 0x73c]
call fcn.00409cd0
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x368]
push ecx
call fcn.0040a960
mov edx, dword [eax + 4]
mov eax, dword [eax]
add esp, 0x18
push ebx
push edi
push edx
push eax
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x74c]
call fcn.004038d0
push 0x429e60
lea ecx, [esp + 0x790]
call fcn.0040b430
mov ebx, dword [esp + 0x14]
lea edx, [esp + 0x78c]
push edx
push 0x429e50
lea eax, [esp + 0x740]
push eax
lea ecx, [esp + 0x760]
or ebx, 7
push ecx
mov dword [esp + 0x24], ebx
call fcn.00404c60
push eax
lea edx, [esp + 0x7d8]
push edx
call fcn.0040b930
add esp, 0x14
push eax
call fcn.00409750
add esp, 8
test al, al
je 0x4196a6
push 0x429e28
lea ecx, [esp + 0x774]
call fcn.0040b430
lea eax, [esp + 0x770]
push eax
push 0x429e18
lea ecx, [esp + 0x740]
push ecx
lea edx, [esp + 0x7b4]
or ebx, 0x38
push edx
mov dword [esp + 0x24], ebx
call fcn.00404c60
push eax
lea eax, [esp + 0x64]
push eax
call fcn.0040b930
add esp, 0x14
push eax
call fcn.00409750
add esp, 8
mov byte [esp + 0x12], 0
test al, al
jne 0x4196ab
mov byte [esp + 0x12], 1
test bl, 0x20
je 0x4196c0
and ebx, 0xffffffdf
lea ecx, [esp + 0x50]
mov dword [esp + 0x14], ebx
call fcn.004035b0
test bl, 0x10
je 0x4196d8
and ebx, 0xffffffef
lea ecx, [esp + 0x7a8]
mov dword [esp + 0x14], ebx
call fcn.00403510
test bl, 8
je 0x4196f0
and ebx, 0xfffffff7
lea ecx, [esp + 0x770]
mov dword [esp + 0x14], ebx
call fcn.004035b0
test bl, 4
je 0x419708
and ebx, 0xfffffffb
lea ecx, [esp + 0x7c4]
mov dword [esp + 0x14], ebx
call fcn.004035b0
test bl, 2
je 0x419720
and ebx, 0xfffffffd
lea ecx, [esp + 0x754]
mov dword [esp + 0x14], ebx
call fcn.00403510
test bl, 1
je 0x419738
and ebx, 0xfffffffe
lea ecx, [esp + 0x78c]
mov dword [esp + 0x14], ebx
call fcn.004035b0
cmp byte [esp + 0x12], 0
lea ecx, [esp + 0x738]
sete byte [esp + 0x12]
jmp 0x41a1f6
push 0x429df8
push 0x1f
push 0
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x72c]
call fcn.0040b3f0
push eax
call fcn.004032a0
add esp, 8
lea ecx, [esp + 0x50]
mov bl, al
call fcn.00403510
test bl, bl
je 0x41994b
push 0x104
lea edx, [esp + 0x7e4]
push edx
push 0
call dword [0x429074]
push eax
call dword [0x429060]
test eax, eax
je 0x4194f7
lea eax, [esp + 0x7e0]
push eax
lea ecx, [esp + 0x73c]
call fcn.00404670
lea ecx, [esp + 0x364]
push ecx
lea ecx, [esp + 0x73c]
mov byte [esp + 0x17], 0x5c
call fcn.00403580
mov edi, dword [eax]
mov ebx, dword [eax + 4]
lea edx, [esp + 0x374]
push edx
lea ecx, [esp + 0x73c]
call fcn.00409d20
mov esi, eax
lea eax, [esp + 0x384]
push eax
lea ecx, [esp + 0x73c]
call fcn.00409cd0
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x3a8]
push ecx
call fcn.0040a960
mov edx, dword [eax + 4]
mov eax, dword [eax]
add esp, 0x18
push ebx
push edi
push edx
push eax
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x74c]
call fcn.004038d0
mov ebx, dword [esp + 0x14]
push 0x429e50
lea edx, [esp + 0x73c]
push edx
lea eax, [esp + 0x7b0]
or ebx, 0xc0
push eax
mov dword [esp + 0x20], ebx
call fcn.00404c60
push eax
lea ecx, [esp + 0x79c]
push ecx
call fcn.0040b930
push eax
call fcn.00409980
add esp, 0x18
test al, al
je 0x4198c5
push 0x429e18
lea edx, [esp + 0x73c]
push edx
lea eax, [esp + 0x778]
or ebx, 0x300
push eax
mov dword [esp + 0x20], ebx
call fcn.00404c60
push eax
lea ecx, [esp + 0x60]
push ecx
call fcn.0040b930
push eax
call fcn.00409980
add esp, 0x18
mov byte [esp + 0x12], 0
test al, al
jne 0x4198ca
mov byte [esp + 0x12], 1
test ebx, 0x200
je 0x4198e5
and ebx, 0xfffffdff
lea ecx, [esp + 0x50]
mov dword [esp + 0x14], ebx
call fcn.004035b0
test ebx, 0x100
je 0x419903
and ebx, 0xfffffeff
lea ecx, [esp + 0x770]
mov dword [esp + 0x14], ebx
call fcn.00403510
test bl, bl
jns 0x41991d
and ebx, 0xffffff7f
lea ecx, [esp + 0x78c]
mov dword [esp + 0x14], ebx
call fcn.004035b0
test bl, 0x40
je 0x419935
and ebx, 0xffffffbf
lea ecx, [esp + 0x7a8]
mov dword [esp + 0x14], ebx
call fcn.00403510
cmp byte [esp + 0x12], 0
lea ecx, [esp + 0x738]
sete byte [esp + 0x12]
jmp 0x41a1f6
push 0x429ddc
push 0x1a
push 0
lea edx, [esp + 0x5c]
push edx
lea ecx, [esp + 0x72c]
call fcn.0040b3f0
push eax
call fcn.004032a0
add esp, 8
lea ecx, [esp + 0x50]
mov bl, al
call fcn.00403510
test bl, bl
je 0x419c71
lea eax, [esp + 0x3a4]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
push eax
lea ecx, [esp + 0x3b8]
push ecx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 0x1c
lea ecx, [esp + 0x71c]
jge 0x4199cc
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x41a215
push 0x1c
lea edx, [esp + 0x3c8]
push edx
lea eax, [esp + 0x3dc]
push eax
call fcn.00403540
mov ecx, eax
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea ecx, [esp + 0x3e4]
push ecx
lea ecx, [esp + 0x720]
call fcn.00403540
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edi
push esi
push edx
push eax
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x730]
call fcn.004038d0
lea edx, [esp + 0x3f4]
push edx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
mov esi, eax
lea eax, [esp + 0x404]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x5c]
push ecx
call fcn.004037c0
add esp, 0x18
lea edx, [esp + 0x414]
push edx
lea ecx, [esp + 0x720]
call fcn.00403580
push eax
lea ecx, [esp + 0x4c]
call fcn.00402900
lea ecx, [esp + 0x71c]
test al, al
je 0x419aa4
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x41a215
lea eax, [esp + 0x424]
push eax
call fcn.00403540
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea ecx, [esp + 0x79c]
call fcn.004044c0
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x438]
push ecx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 3
jge 0x419b15
lea ecx, [esp + 0x78c]
mov byte [esp + 0x12], 0
call fcn.00403510
lea ecx, [esp + 0x71c]
call fcn.00403510
jmp 0x41a215
push 3
lea edx, [esp + 0x448]
push edx
lea ecx, [esp + 0x50]
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x454]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x464]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x474]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x498]
push ecx
call fcn.004037c0
add esp, 0x18
lea edx, [esp + 0x494]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea ecx, [esp + 0x780]
call fcn.004044c0
push 0
lea ecx, [esp + 0x774]
call fcn.00402c60
push eax
lea ecx, [esp + 0x794]
call fcn.00402c60
push eax
push 0
call dword [0x429204]
lea eax, [esp + 0x770]
push eax
lea ecx, [esp + 0x73c]
push ecx
call fcn.0040b930
add esp, 8
push eax
lea edx, [esp + 0x790]
push edx
lea eax, [esp + 0x58]
push eax
call fcn.0040b930
add esp, 8
push eax
call fcn.00409750
add esp, 8
test al, al
lea ecx, [esp + 0x50]
sete bl
call fcn.004035b0
lea ecx, [esp + 0x738]
call fcn.004035b0
test bl, bl
lea ecx, [esp + 0x770]
sete byte [esp + 0x12]
call fcn.00403510
lea ecx, [esp + 0x78c]
jmp 0x41a1f6
push 0x429dbc
push 0x1c
push 0
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x72c]
call fcn.0040b3f0
push eax
call fcn.004032a0
add esp, 8
lea ecx, [esp + 0x50]
mov bl, al
call fcn.00403510
lea ecx, [esp + 0x71c]
test bl, bl
je 0x419e01
lea edx, [esp + 0x4a4]
push edx
call fcn.00403540
push eax
lea eax, [esp + 0x4b8]
push eax
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 0x1e
jge 0x419cf2
lea ecx, [esp + 0x71c]
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x41a215
push 0x1e
lea ecx, [esp + 0x4c8]
push ecx
lea edx, [esp + 0x4dc]
push edx
lea ecx, [esp + 0x728]
call fcn.00403540
mov ecx, eax
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x4e4]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x4f4]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x504]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x528]
push ecx
call fcn.004037c0
add esp, 0x18
lea edx, [esp + 0x524]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea ecx, [esp + 0x780]
call fcn.004044c0
lea eax, [esp + 0x770]
push eax
lea ecx, [esp + 0x54]
push ecx
call fcn.0040b930
push eax
call fcn.00409980
add esp, 0xc
test al, al
lea ecx, [esp + 0x50]
sete bl
call fcn.004035b0
test bl, bl
sete byte [esp + 0x12]
jmp 0x41a1ef
push 0x429db0
push 0xb
push 0
lea edx, [esp + 0x5c]
push edx
call fcn.0040b3f0
push eax
call fcn.004032a0
add esp, 8
lea ecx, [esp + 0x50]
mov bl, al
call fcn.00403510
lea ecx, [esp + 0x71c]
test bl, bl
je 0x419f1e
lea eax, [esp + 0x534]
push eax
call fcn.00403540
push eax
lea ecx, [esp + 0x548]
push ecx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 0xc
lea ecx, [esp + 0x71c]
jge 0x419e7b
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x41a215
push 0xc
lea edx, [esp + 0x558]
push edx
lea eax, [esp + 0x56c]
push eax
call fcn.00403540
mov ecx, eax
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea ecx, [esp + 0x574]
push ecx
lea ecx, [esp + 0x720]
call fcn.00403540
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edi
push esi
push edx
push eax
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x50]
call fcn.00408cf0
lea ecx, [esp + 0x71c]
call fcn.00402c60
push eax
lea ecx, [esp + 0x54]
call fcn.00409660
lea edx, [esp + 0xf8]
push edx
lea ecx, [esp + 0x720]
call fcn.00402c60
push eax
lea ecx, [esp + 0x58]
call fcn.00409580
test eax, eax
lea ecx, [esp + 0x50]
sete byte [esp + 0x12]
call fcn.00408e00
jmp 0x41a1fb
push 0x429d9c
push 0x12
push 0
lea eax, [esp + 0x5c]
push eax
call fcn.0040b3f0
push eax
call fcn.004032a0
add esp, 8
lea ecx, [esp + 0x50]
mov bl, al
call fcn.00403510
test bl, bl
je 0x41a1fb
lea ecx, [esp + 0x584]
push ecx
lea ecx, [esp + 0x720]
call fcn.00403540
push eax
lea edx, [esp + 0x598]
push edx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 0x14
jge 0x419f98
lea ecx, [esp + 0x71c]
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x41a215
push 0x14
lea eax, [esp + 0x5a8]
push eax
lea ecx, [esp + 0x5bc]
push ecx
lea ecx, [esp + 0x728]
call fcn.00403540
mov ecx, eax
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea edx, [esp + 0x5c4]
push edx
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x5d4]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x5e4]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x54]
push ecx
call fcn.004037c0
add esp, 0x18
lea edx, [esp + 0x5f4]
push edx
lea ecx, [esp + 0x720]
call fcn.00403580
push eax
lea ecx, [esp + 0x44]
call fcn.00402900
lea ecx, [esp + 0x71c]
test al, al
je 0x41a077
mov byte [esp + 0x12], 0
call fcn.00403510
jmp 0x41a215
lea eax, [esp + 0x604]
push eax
call fcn.00403540
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea ecx, [esp + 0x780]
call fcn.004044c0
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x618]
push ecx
lea ecx, [esp + 0x724]
call fcn.00403580
mov ecx, eax
call fcn.00402c00
cmp eax, 3
jge 0x41a0e8
lea ecx, [esp + 0x770]
mov byte [esp + 0x12], 0
call fcn.00403510
lea ecx, [esp + 0x71c]
call fcn.00403510
jmp 0x41a215
push 3
lea edx, [esp + 0x628]
push edx
lea ecx, [esp + 0x48]
call fcn.00403050
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x634]
push eax
lea ecx, [esp + 0x720]
call fcn.00403540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push edi
push esi
push ecx
push edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x730]
call fcn.004038d0
lea ecx, [esp + 0x644]
push ecx
lea ecx, [esp + 0x720]
mov byte [esp + 0x17], 0x22
call fcn.00403580
lea edx, [esp + 0x654]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov edx, dword [esi + 4]
lea ecx, [esp + 0x13]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
lea ecx, [esp + 0x678]
push ecx
call fcn.004037c0
add esp, 0x18
lea edx, [esp + 0x674]
push edx
lea ecx, [esp + 0x720]
mov esi, eax
call fcn.00403540
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea ecx, [esp + 0x79c]
call fcn.004044c0
push 1
push 0
lea ecx, [esp + 0x794]
call fcn.00402c60
push eax
lea ecx, [esp + 0x77c]
call fcn.00402c60
push eax
push 0x429d94
push 0
call dword [0x4291d0]
cmp eax, 0x20
lea ecx, [esp + 0x78c]
setg byte [esp + 0x12]
call fcn.00403510
lea ecx, [esp + 0x770]
call fcn.00403510
cmp dword [esp + 0x734], 0x10
jb 0x41a215
mov eax, dword [esp + 0x720]
push eax
call fcn.0041a65d
add esp, 4
mov ecx, dword [0x4301c4]
sub ecx, dword [0x4301c0]
mov esi, dword [esp + 0x38]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc esi
add eax, edx
mov dword [esp + 0x38], esi
cmp esi, eax
jb 0x416c1c
mov ecx, dword [esp + 0x89f4]
xor eax, eax
cmp byte [esp + 0x12], al
pop edi
pop esi
setne al
pop ebx
xor ecx, esp
call fcn.0041ac87
mov esp, ebp
pop ebp
ret 0x10