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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x428a6f
mov eax, dword fs:[0]
push eax
sub esp, 0x9b0
mov eax, dword [0x42f0f4]
xor eax, esp
mov dword [esp + 0x9a8], eax
push ebx
push esi
push edi
mov eax, dword [0x42f0f4]
xor eax, esp
push eax
lea eax, [esp + 0x9c0]
mov dword fs:[0], eax
mov dword [esp + 0x1c], 0
mov eax, dword [0x4301dc]
mov ebx, dword [0x4301d8]
mov edi, eax
cmp ebx, eax
jbe 0x412d69
call fcn.0041a7c5
mov eax, dword [0x4301dc]
mov ebx, dword [0x4301d8]
mov esi, dword [0x4301cc]
cmp ebx, eax
jbe 0x412d78
call fcn.0041a7c5
mov eax, dword [0x4301cc]
push edi
push esi
push ebx
push eax
lea ecx, [esp + 0x78]
push ecx
mov ecx, 0x4301cc
call fcn.0040f9e0
lea edx, [esp + 0x5c]
push edx
push 0x4298f0
push 0x80000002
mov dword [esp + 0x68], 0
call fcn.0040e500
add esp, 0xc
test eax, eax
jne 0x4136fa
mov ecx, dword [esp + 0x5c]
mov ebx, 0x80
push ebx
lea eax, [esp + 0x690]
push eax
xor esi, esi
push esi
push ecx
mov dword [esp + 0x4c], esi
call fcn.0040f430
add esp, 0x10
test eax, eax
jne 0x4136fa
mov edi, 0x200
jmp 0x412df2
xor esi, esi
lea ecx, [esp + 0x3cc]
call fcn.0040f060
xor edx, edx
lea eax, [esp + 0x68c]
mov word [esp + 0xac], dx
mov dword [esp + 0x9c8], esi
mov dword [esp + 0x45c], esi
mov dword [esp + 0x460], esi
mov dword [esp + 0xc0], 7
mov dword [esp + 0xbc], esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x412e40
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x690]
push eax
lea ecx, [esp + 0xb0]
call fcn.0040a270
lea ecx, [esp + 0xa8]
push ecx
lea edx, [esp + 0x138]
push 0x4298f0
push edx
mov byte [esp + 0x9d4], 1
call fcn.0040b4e0
add esp, 0xc
cmp dword [eax + 0x18], 8
mov byte [esp + 0x9c8], 2
jb 0x412e9c
mov eax, dword [eax + 4]
jmp 0x412e9f
add eax, 4
lea ecx, [esp + 0x54]
push ecx
push eax
push 0x80000002
call fcn.0040e500
add esp, 0xc
cmp dword [esp + 0x14c], 8
mov esi, eax
jb 0x412ece
mov edx, dword [esp + 0x138]
push edx
call fcn.0041a65d
add esp, 4
xor ecx, ecx
xor eax, eax
cmp dword [esp + 0xc0], 8
mov dword [esp + 0x14c], 7
mov dword [esp + 0x148], eax
mov word [esp + 0x138], cx
mov byte [esp + 0x9c8], cl
jb 0x412f0f
mov edx, dword [esp + 0xac]
push edx
call fcn.0041a65d
add esp, 4
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x60], eax
mov dword [esp + 0x44], edi
cmp esi, eax
jne 0x41368e
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x7b8]
push ecx
lea edx, [esp + 0x68]
push edx
mov edx, dword [esp + 0x60]
push 0
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x248]
push ecx
push 0
push edx
call fcn.0040e610
add esp, 0x20
test eax, eax
jne 0x41368e
nop
mov eax, 1
cmp dword [esp + 0x60], eax
je 0x412f7c
add dword [esp + 0x18], eax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x44], edi
jmp 0x413653
xor eax, eax
mov word [esp + 0xac], ax
lea eax, [esp + 0x234]
mov dword [esp + 0xc0], 7
mov dword [esp + 0xbc], 0
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x412fa6
sub eax, edx
sar eax, 1
push eax
lea ecx, [esp + 0x238]
push ecx
lea ecx, [esp + 0xb0]
call fcn.0040a270
mov esi, dword [esp + 0xbc]
mov edx, esi
cmp esi, 0xa
jb 0x412fdd
mov edx, 0xa
mov edi, dword [esp + 0xc0]
mov ecx, dword [esp + 0xac]
cmp edi, 8
jae 0x412ff7
lea ecx, [esp + 0xac]
mov eax, 0x429d64
test edx, edx
jbe 0x413025
mov bx, word [ecx]
cmp bx, word [eax]
jne 0x413015
add ecx, 2
add eax, 2
sub edx, 1
jne 0x413000
jmp 0x413025
mov dx, word [ecx]
cmp dx, word [eax]
sbb eax, eax
and eax, 0xfffffffe
add eax, 1
jne 0x413037
cmp esi, 0xa
jae 0x41302f
or eax, 0xffffffff
jmp 0x413037
xor eax, eax
cmp esi, 0xa
setne al
test eax, eax
sete bl
mov byte [esp + 0x9c8], 0
cmp edi, 8
jb 0x413059
mov eax, dword [esp + 0xac]
push eax
call fcn.0041a65d
add esp, 4
test bl, bl
je 0x413115
lea eax, [esp + 0x7b4]
lea edx, [eax + 2]
jmp 0x413070
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x413070
sub eax, edx
sar eax, 1
push eax
lea ecx, [esp + 0x7b8]
push ecx
lea ecx, [esp + 0x40c]
call fcn.0040a270
mov eax, dword [esp + 0x418]
lea esi, [eax - 1]
cmp esi, eax
jbe 0x4130ae
call fcn.0041a7c5
mov eax, dword [esp + 0x418]
cmp dword [esp + 0x41c], 8
mov ecx, dword [esp + 0x408]
jae 0x4130c6
lea ecx, [esp + 0x408]
cmp word [ecx + esi*2], 0x5c
je 0x413635
lea esi, [eax - 1]
cmp esi, eax
jbe 0x4130dd
call fcn.0041a7c5
cmp dword [esp + 0x41c], 8
mov eax, dword [esp + 0x408]
jae 0x4130f5
lea eax, [esp + 0x408]
cmp word [eax + esi*2], 0x2f
je 0x413635
push 0x5c
push 1
lea ecx, [esp + 0x40c]
call fcn.0040a1b0
jmp 0x413635
xor edx, edx
lea eax, [esp + 0x234]
mov word [esp + 0xac], dx
mov dword [esp + 0xc0], 7
mov dword [esp + 0xbc], 0
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x413140
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x238]
push eax
lea ecx, [esp + 0xb0]
call fcn.0040a270
mov esi, dword [esp + 0xbc]
mov edx, esi
cmp esi, 7
jb 0x413177
mov edx, 7
mov edi, dword [esp + 0xc0]
mov ecx, dword [esp + 0xac]
cmp edi, 8
jae 0x413191
lea ecx, [esp + 0xac]
mov eax, 0x429d54
test edx, edx
jbe 0x4131c5
lea ebx, [ebx]
mov bx, word [ecx]
cmp bx, word [eax]
jne 0x4131b5
add ecx, 2
add eax, 2
sub edx, 1
jne 0x4131a0
jmp 0x4131c5
mov cx, word [ecx]
cmp cx, word [eax]
sbb eax, eax
and eax, 0xfffffffe
add eax, 1
jne 0x4131d7
cmp esi, 7
jae 0x4131cf
or eax, 0xffffffff
jmp 0x4131d7
xor eax, eax
cmp esi, 7
setne al
xor esi, esi
cmp eax, esi
sete bl
mov byte [esp + 0x9c8], 0
cmp edi, 8
jb 0x4131fb
mov edx, dword [esp + 0xac]
push edx
call fcn.0041a65d
add esp, 4
test bl, bl
je 0x413239
lea eax, [esp + 0x7b4]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x413210
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x7b8]
push eax
lea ecx, [esp + 0x3f0]
call fcn.0040a270
jmp 0x413635
xor ecx, ecx
lea eax, [esp + 0x234]
mov dword [esp + 0xc0], 7
mov dword [esp + 0xbc], esi
mov word [esp + 0xac], cx
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x413260
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x238]
push edx
lea ecx, [esp + 0xb0]
call fcn.0040a270
mov eax, dword [esp + 0xbc]
mov edi, 8
push edi
push 0x429d40
push eax
push esi
lea ecx, [esp + 0xb8]
mov byte [esp + 0x9d8], 5
call fcn.004094d0
test eax, eax
sete bl
mov byte [esp + 0x9c8], 0
cmp dword [esp + 0xc0], edi
jb 0x4132d2
mov ecx, dword [esp + 0xac]
push ecx
call fcn.0041a65d
add esp, 4
test bl, bl
je 0x413309
lea eax, [esp + 0x7b4]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x4132e0
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x7b8]
push edx
lea ecx, [esp + 0x3d4]
call fcn.0040a270
jmp 0x413635
xor eax, eax
mov word [esp + 0xac], ax
lea eax, [esp + 0x234]
mov dword [esp + 0xc0], 7
mov dword [esp + 0xbc], esi
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x413330
sub eax, edx
sar eax, 1
push eax
lea ecx, [esp + 0x238]
push ecx
lea ecx, [esp + 0xb0]
call fcn.0040a270
mov edx, dword [esp + 0xbc]
push 6
push 0x429d30
push edx
push esi
lea ecx, [esp + 0xb8]
mov byte [esp + 0x9d8], 6
call fcn.004094d0
test eax, eax
sete bl
mov byte [esp + 0x9c8], 0
cmp dword [esp + 0xc0], edi
jb 0x41339e
mov eax, dword [esp + 0xac]
push eax
call fcn.0041a65d
add esp, 4
test bl, bl
je 0x4133d9
lea eax, [esp + 0x7b4]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x4133b0
sub eax, edx
sar eax, 1
push eax
lea ecx, [esp + 0x7b8]
push ecx
lea ecx, [esp + 0x428]
call fcn.0040a270
jmp 0x413635
xor edx, edx
lea eax, [esp + 0x234]
mov word [esp + 0xac], dx
mov dword [esp + 0xc0], 7
mov dword [esp + 0xbc], esi
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x413400
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x238]
push eax
lea ecx, [esp + 0xb0]
call fcn.0040a270
mov ecx, dword [esp + 0xbc]
push 2
push 0x429d28
push ecx
push esi
lea ecx, [esp + 0xb8]
mov byte [esp + 0x9d8], 7
call fcn.004094d0
test eax, eax
sete bl
mov byte [esp + 0x9c8], 0
cmp dword [esp + 0xc0], edi
jb 0x41346e
mov edx, dword [esp + 0xac]
push edx
call fcn.0041a65d
add esp, 4
mov dword [esp + 0xc0], 7
mov dword [esp + 0xbc], esi
test bl, bl
je 0x413523
xor eax, eax
mov word [esp + 0xac], ax
lea eax, [esp + 0x7b4]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x4134a0
sub eax, edx
sar eax, 1
push eax
lea ecx, [esp + 0x7b8]
push ecx
lea ecx, [esp + 0xb0]
call fcn.0040a270
mov edx, dword [esp + 0xbc]
push 4
push 0x429d1c
push edx
push esi
lea ecx, [esp + 0xb8]
mov byte [esp + 0x9d8], 8
call fcn.004094d0
test eax, eax
sete bl
mov byte [esp + 0x9c8], 0
cmp dword [esp + 0xc0], edi
jb 0x41350e
mov eax, dword [esp + 0xac]
push eax
call fcn.0041a65d
add esp, 4
test bl, bl
je 0x413635
mov byte [esp + 0x493], 1
jmp 0x413635
xor ecx, ecx
lea eax, [esp + 0x234]
mov word [esp + 0xac], cx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x413537
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x238]
push edx
lea ecx, [esp + 0xb0]
call fcn.0040a270
mov eax, dword [esp + 0xbc]
push 9
push 0x429d08
push eax
push esi
lea ecx, [esp + 0xb8]
mov byte [esp + 0x9d8], 9
call fcn.004094d0
test eax, eax
sete bl
mov byte [esp + 0x9c8], 0
cmp dword [esp + 0xc0], edi
jb 0x4135a5
mov ecx, dword [esp + 0xac]
push ecx
call fcn.0041a65d
add esp, 4
test bl, bl
je 0x4135d9
lea eax, [esp + 0x7b4]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x4135b3
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x7b8]
push edx
lea ecx, [esp + 0x49c]
call fcn.0040a270
jmp 0x413635
lea eax, [esp + 0x234]
push eax
lea ecx, [esp + 0x24]
call fcn.0040b430
push 0x429cfc
push eax
mov byte [esp + 0x9d0], 0xa
call fcn.00409b10
add esp, 8
mov bl, al
mov byte [esp + 0x9c8], 0
cmp dword [esp + 0x38], edi
jb 0x41361d
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0041a65d
add esp, 4
test bl, bl
je 0x413635
lea edx, [esp + 0x7b4]
push edx
lea ecx, [esp + 0x440]
call fcn.0040b470
inc dword [esp + 0x18]
mov dword [esp + 0x4c], 0x80
mov dword [esp + 0x44], 0x200
mov edi, 0x200
mov ebx, 0x80
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x7b8]
push ecx
lea edx, [esp + 0x68]
push edx
mov edx, dword [esp + 0x24]
push 0
lea eax, [esp + 0x5c]
push eax
mov eax, dword [esp + 0x68]
lea ecx, [esp + 0x248]
push ecx
push edx
push eax
call fcn.0040e610
add esp, 0x20
test eax, eax
je 0x412f60
lea ecx, [esp + 0x3cc]
call fcn.0040f280
test al, al
je 0x4136b0
lea ecx, [esp + 0x3cc]
push ecx
mov ecx, 0x4301cc
call fcn.004100c0
mov edx, dword [esp + 0x54]
push edx
call dword [0x429028]
mov esi, dword [esp + 0x3c]
inc esi
lea ecx, [esp + 0x3cc]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x9c8], 0xffffffff
call fcn.00409ec0
mov ecx, dword [esp + 0x5c]
push ebx
lea eax, [esp + 0x690]
push eax
push esi
push ecx
call fcn.0040f430
add esp, 0x10
test eax, eax
je 0x412df0
mov edx, dword [esp + 0x5c]
push edx
call dword [0x429028]
lea eax, [esp + 0xe0]
push eax
call fcn.0040ba20
push 0x429ce8
push eax
lea ecx, [esp + 0x124]
push ecx
mov dword [esp + 0x9d8], 0xb
call fcn.00405450
push eax
lea edx, [esp + 0x19c]
push edx
mov byte [esp + 0x9e0], 0xc
call fcn.0040a990
add esp, 0x18
mov esi, 8
cmp dword [esp + 0x130], esi
jb 0x413767
mov eax, dword [esp + 0x11c]
push eax
call fcn.0041a65d
add esp, 4
mov edi, 7
xor ebx, ebx
xor ecx, ecx
mov dword [esp + 0x130], edi
mov dword [esp + 0x12c], ebx
mov word [esp + 0x11c], cx
mov byte [esp + 0x9c8], 0xf
cmp dword [esp + 0xf8], esi
jb 0x4137a7
mov edx, dword [esp + 0xe4]
push edx
call fcn.0041a65d
add esp, 4
push 0x429af4
lea ecx, [esp + 0x18c]
push ecx
lea edx, [esp + 0x174]
xor eax, eax
push edx
mov dword [esp + 0x104], edi
mov dword [esp + 0x100], ebx
mov word [esp + 0xf0], ax
call fcn.00404c60
add esp, 0xc
mov eax, dword [esp + 0x170]
mov edi, 0x10
mov byte [esp + 0x9c8], 0x10
cmp dword [esp + 0x184], edi
jae 0x413800
lea eax, [esp + 0x170]
lea ecx, [esp + 0x564]
push ecx
push eax
call fcn.0041b799
add esp, 8
mov dword [esp + 0x18], eax
cmp eax, 0xffffffff
jne 0x413870
cmp dword [esp + 0x184], edi
jb 0x413833
mov edx, dword [esp + 0x170]
push edx
call fcn.0041a65d
add esp, 4
mov dword [esp + 0x184], 0xf
mov dword [esp + 0x180], ebx
mov byte [esp + 0x170], 0
cmp dword [esp + 0x1a0], edi
jb 0x415b58
mov eax, dword [esp + 0x18c]
push eax
jmp 0x415b50
test byte [esp + 0x564], 0x10
je 0x414c3f
mov ecx, 0x429af0
lea eax, [esp + 0x588]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4138b0
test dl, dl
je 0x4138ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4138b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x413890
xor eax, eax
jmp 0x4138b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x414c3f
mov ecx, 0x429aec
lea eax, [esp + 0x588]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4138f0
test dl, dl
je 0x4138ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4138f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4138d0
xor eax, eax
jmp 0x4138f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x414c3f
lea ecx, [esp + 0x588]
push ecx
lea edx, [esp + 0x18c]
push edx
lea eax, [esp + 0x120]
push eax
call fcn.00404c60
add esp, 0xc
mov ecx, dword [esp + 0x12c]
lea esi, [ecx - 1]
mov byte [esp + 0x9c8], 0x11
cmp esi, ecx
jbe 0x41393f
call fcn.0041a7c5
mov ecx, dword [esp + 0x12c]
mov eax, dword [esp + 0x11c]
cmp dword [esp + 0x130], edi
jae 0x413956
lea eax, [esp + 0x11c]
cmp byte [eax + esi], 0x5c
je 0x413998
lea esi, [ecx - 1]
cmp esi, ecx
jbe 0x413968
call fcn.0041a7c5
mov eax, dword [esp + 0x11c]
cmp dword [esp + 0x130], edi
jae 0x41397f
lea eax, [esp + 0x11c]
cmp byte [eax + esi], 0x2f
je 0x413998
push 1
push 0x429328
lea ecx, [esp + 0x120]
call fcn.00403c40
push 3
push 0x429af4
lea ecx, [esp + 0x120]
call fcn.00403c40
lea ecx, [esp + 0x150]
call fcn.004057b0
mov eax, dword [esp + 0x160]
mov ecx, dword [esp + 0x15c]
mov byte [esp + 0x9c8], 0x12
mov edi, eax
cmp ecx, eax
jbe 0x4139e6
call fcn.0041a7c5
mov eax, dword [esp + 0x160]
mov ecx, dword [esp + 0x15c]
mov esi, dword [esp + 0x150]
mov ebx, ecx
cmp ecx, eax
jbe 0x4139f8
call fcn.0041a7c5
mov ecx, dword [esp + 0x150]
push edi
push esi
push ebx
push ecx
lea edx, [esp + 0x98]
push edx
lea ecx, [esp + 0x164]
call fcn.0040f850
cmp dword [esp + 0x130], 0x10
mov eax, dword [esp + 0x11c]
jae 0x413a2f
lea eax, [esp + 0x11c]
lea ecx, [esp + 0x68c]
push ecx
push eax
call fcn.0041b799
add esp, 8
mov dword [esp + 0x3c], eax
cmp eax, 0xffffffff
je 0x414c64
mov ebx, 0x10
test byte [esp + 0x68c], 0x10
jne 0x413d5b
lea eax, [esp + 0x6b0]
mov dword [esp + 0xdc], 0xf
mov dword [esp + 0xd8], 0
mov byte [esp + 0xc8], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x413a88
sub eax, edx
push eax
lea edx, [esp + 0x6b4]
push edx
lea ecx, [esp + 0xcc]
call fcn.00403d50
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xc8]
mov byte [esp + 0x9c8], 0x13
cmp ecx, ebx
jb 0x413c26
mov esi, edx
test edx, edx
je 0x413af5
mov eax, edx
cmp ecx, ebx
jae 0x413ad7
lea eax, [esp + 0xc8]
cmp eax, esi
ja 0x413af5
mov eax, edx
cmp ecx, ebx
jae 0x413ae8
lea eax, [esp + 0xc8]
mov edi, dword [esp + 0xd8]
add edi, eax
cmp esi, edi
jbe 0x413b08
call fcn.0041a7c5
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xc8]
mov edi, esi
lea ebx, [ebx]
mov eax, edx
cmp ecx, ebx
jae 0x413b1d
lea eax, [esp + 0xc8]
mov esi, dword [esp + 0xd8]
add esi, eax
je 0x413b58
mov eax, edx
cmp ecx, ebx
jae 0x413b35
lea eax, [esp + 0xc8]
cmp eax, esi
ja 0x413b58
mov eax, edx
cmp ecx, ebx
jae 0x413b46
lea eax, [esp + 0xc8]
mov ebx, dword [esp + 0xd8]
add ebx, eax
cmp esi, ebx
mov ebx, 0x10
jbe 0x413b6b
call fcn.0041a7c5
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xc8]
cmp edi, esi
je 0x413c32
lea eax, [esp + 0xc4]
cmp eax, 0xfffffffc
je 0x413bcb
mov eax, edx
cmp ecx, ebx
jae 0x413b8c
lea eax, [esp + 0xc8]
mov esi, dword [esp + 0xd8]
add esi, eax
cmp edi, esi
jb 0x413bac
call fcn.0041a7c5
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xc8]
mov eax, edx
cmp ecx, ebx
jae 0x413bb9
lea eax, [esp + 0xc8]
mov ecx, dword [esp + 0xd8]
add ecx, eax
cmp edi, ecx
jb 0x413bcb
call fcn.0041a7c5
movsx edx, byte [edi]
push edx
call fcn.0041bb44
mov byte [edi], al
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xcc]
lea eax, [esp + 0xc8]
add esp, 4
cmp eax, 0xfffffffc
je 0x413c20
mov eax, edx
cmp ecx, ebx
jae 0x413c00
lea eax, [esp + 0xc8]
mov esi, dword [esp + 0xd8]
add esi, eax
cmp edi, esi
jb 0x413c20
call fcn.0041a7c5
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xc8]
inc edi
jmp 0x413b10
lea esi, [esp + 0xc8]
jmp 0x413aca
push 4
push 0
push 0x429ce0
lea ecx, [esp + 0xd0]
call fcn.00402ce0
cmp eax, 0xffffffff
jne 0x413c6e
mov byte [esp + 0x9c8], 0x12
cmp dword [esp + 0xdc], ebx
jb 0x413d5b
mov ecx, dword [esp + 0xc8]
push ecx
jmp 0x413d53
push 6
push 0
push 0x429cd8
lea ecx, [esp + 0xd0]
call fcn.00402ce0
cmp eax, 0xffffffff
jne 0x413d3a
push 9
push 0
push 0x429ccc
lea ecx, [esp + 0xd0]
call fcn.00402ce0
cmp eax, 0xffffffff
je 0x413cc8
mov byte [esp + 0x9c8], 0x12
cmp dword [esp + 0xdc], ebx
jb 0x413d5b
mov eax, dword [esp + 0xc8]
push eax
jmp 0x413d53
push 9
push 0
push 0x429cc0
lea ecx, [esp + 0xd0]
call fcn.00402ce0
cmp eax, 0xffffffff
je 0x413cfd
mov byte [esp + 0x9c8], 0x12
cmp dword [esp + 0xdc], ebx
jb 0x413d5b
mov ecx, dword [esp + 0xc8]
push ecx
jmp 0x413d53
lea edx, [esp + 0x6b0]
push edx
lea ecx, [esp + 0x24]
call fcn.00404670
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x154]
mov byte [esp + 0x9cc], 0x14
call fcn.00407440
cmp dword [esp + 0x38], ebx
jb 0x413d3a
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0041a65d
add esp, 4
mov byte [esp + 0x9c8], 0x12
cmp dword [esp + 0xdc], ebx
jb 0x413d5b
mov edx, dword [esp + 0xc8]
push edx
call fcn.0041a65d
add esp, 4
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x68c]
push eax
push ecx
call fcn.0041b8c9
add esp, 8
test eax, eax
je 0x413a52
mov edx, dword [esp + 0x3c]
push edx
call fcn.0041b70b
add esp, 4
lea ecx, [esp + 0x234]
call fcn.0040f060
xor esi, esi
lea eax, [esp + 0x588]
mov byte [esp + 0x9c8], 0x15
mov dword [esp + 0x2c4], esi
mov dword [esp + 0x2c8], esi
mov byte [esp + 0x2f8], 1
mov dword [esp + 0xc0], 0xf
mov dword [esp + 0xbc], esi
mov byte [esp + 0xac], 0
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x413dd5
sub eax, ecx
push eax
lea eax, [esp + 0x58c]
push eax
lea ecx, [esp + 0xb0]
call fcn.00403d50
lea ecx, [esp + 0xa8]
push ecx
lea edx, [esp + 0xe4]
push edx
mov byte [esp + 0x9d0], 0x16
call fcn.0040b930
push eax
lea eax, [esp + 0x140]
push 0x429cb8
push eax
mov byte [esp + 0x9dc], 0x17
call fcn.0040b4e0
add esp, 0x14
push 0xffffffffffffffff
push esi
push eax
lea ecx, [esp + 0x294]
mov byte [esp + 0x9d4], 0x18
call fcn.00403e30
mov edi, 8
cmp dword [esp + 0x14c], edi
jb 0x413e64
mov ecx, dword [esp + 0x138]
push ecx
call fcn.0041a65d
add esp, 4
xor esi, esi
xor edx, edx
mov ebx, 7
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x148], esi
mov word [esp + 0x138], dx
cmp dword [esp + 0xf8], edi
jb 0x413e9c
mov eax, dword [esp + 0xe4]
push eax
call fcn.0041a65d
add esp, 4
xor ecx, ecx
cmp dword [esp + 0xc0], 0x10
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xf4], esi
mov word [esp + 0xe4], cx
mov byte [esp + 0x9c8], 0x15
jb 0x413ed6
mov edx, dword [esp + 0xac]
push edx
call fcn.0041a65d
add esp, 4
push 3
push 0x429cb8
lea ecx, [esp + 0x2ac]
call fcn.0040a270
mov eax, dword [esp + 0x12c]
add eax, 0xfffffffd
push eax
push esi
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x124]
call fcn.0040b3f0
push eax
lea edx, [esp + 0x138]
push edx
mov byte [esp + 0x9d0], 0x19
call fcn.0040b930
add esp, 8
push 0xffffffffffffffff
push esi
push eax
lea ecx, [esp + 0x278]
mov byte [esp + 0x9d4], 0x1a
call fcn.00403e30
cmp dword [esp + 0x14c], edi
jb 0x413f50
mov eax, dword [esp + 0x138]
push eax
call fcn.0041a65d
add esp, 4
xor ecx, ecx
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x148], esi
mov word [esp + 0x138], cx
mov byte [esp + 0x9c8], 0x15
jb 0x413f84
mov edx, dword [esp + 0x24]
push edx
call fcn.0041a65d
add esp, 4
lea eax, [esp + 0x588]
mov dword [esp + 0xc0], 0xf
mov dword [esp + 0xbc], esi
mov byte [esp + 0xac], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x413fa8
sub eax, edx
push eax
lea eax, [esp + 0x58c]
push eax
lea ecx, [esp + 0xb0]
call fcn.00403d50
lea ecx, [esp + 0xa8]
push ecx
lea edx, [esp + 0x138]
push edx
mov byte [esp + 0x9d0], 0x1b
call fcn.0040b930
add esp, 8
push 0xffffffffffffffff
push esi
push eax
lea ecx, [esp + 0x240]
mov byte [esp + 0x9d4], 0x1c
call fcn.00403e30
cmp dword [esp + 0x14c], edi
jb 0x414017
mov eax, dword [esp + 0x138]
push eax
call fcn.0041a65d
add esp, 4
xor ecx, ecx
cmp dword [esp + 0xc0], 0x10
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x148], esi
mov word [esp + 0x138], cx
mov byte [esp + 0x9c8], 0x15
jb 0x414051
mov edx, dword [esp + 0xac]
push edx
call fcn.0041a65d
add esp, 4
xor eax, eax
push eax
push 0x4298ec
lea ecx, [esp + 0x258]
mov dword [esp + 0x2d4], eax
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x2dc], eax
mov dword [esp + 0x2e0], eax
call fcn.0040a270
mov ecx, dword [esp + 0x160]
mov esi, dword [esp + 0x15c]
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jne 0x414190
cmp dword [esi + 0x18], 0x10
jb 0x4140b8
mov ecx, dword [esi + 4]
jmp 0x4140bb
lea ecx, [esi + 4]
mov eax, ecx
mov dword [esp + 0xc0], 0xf
mov dword [esp + 0xbc], 0
mov byte [esp + 0xac], 0
lea esi, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4140e0
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0xb0]
call fcn.00403d50
lea ecx, [esp + 0xa8]
push ecx
lea edx, [esp + 0x138]
push edx
mov byte [esp + 0x9d0], 0x1d
call fcn.0040b930
add esp, 8
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x25c]
mov byte [esp + 0x9d4], 0x1e
call fcn.00403e30
cmp dword [esp + 0x14c], edi
jb 0x414149
mov eax, dword [esp + 0x138]
push eax
call fcn.0041a65d
add esp, 4
xor ecx, ecx
cmp dword [esp + 0xc0], 0x10
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x148], 0
mov word [esp + 0x138], cx
mov byte [esp + 0x9c8], 0x15
jb 0x414983
mov edx, dword [esp + 0xac]
push edx
call fcn.0041a65d
add esp, 4
jmp 0x414983
lea ecx, [esp + 0xc4]
call fcn.004057b0
lea eax, [esp + 0x588]
mov byte [esp + 0x9c8], 0x1f
mov dword [esp + 0x114], 0xf
mov dword [esp + 0x110], 0
mov byte [esp + 0x100], 0
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4141d0
sub eax, edx
push eax
lea eax, [esp + 0x58c]
push eax
lea ecx, [esp + 0x104]
call fcn.00403d50
cmp dword [esp + 0x110], 0
mov byte [esp + 0x9c8], 0x20
jbe 0x414402
mov ebx, 0x10
push 1
push 0
push 0x429cb4
lea ecx, [esp + 0x108]
call fcn.00402ce0
cmp eax, 0xffffffff
je 0x4143ee
mov eax, dword [esp + 0x100]
cmp dword [esp + 0x114], ebx
jae 0x41423e
lea eax, [esp + 0x100]
mov ecx, dword [esp + 0x110]
lea edx, [esp + 0xfc]
add eax, ecx
push edx
push eax
lea ecx, [esp + 0x70]
call fcn.00402e80
mov eax, dword [esp + 0x100]
cmp dword [esp + 0x114], ebx
jae 0x414270
lea eax, [esp + 0x100]
lea ecx, [esp + 0xfc]
push ecx
push eax
lea ecx, [esp + 0x80]
call fcn.00402e80
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x40], esi
cmp esi, eax
je 0x4142aa
lea esp, [esp]
cmp byte [esi], 0x20
je 0x4142aa
inc esi
cmp esi, eax
jne 0x4142a0
mov eax, dword [esp + 0x100]
mov dword [esp + 0x40], esi
cmp dword [esp + 0x114], ebx
jae 0x4142c5
lea eax, [esp + 0x100]
lea edx, [esp + 0xfc]
push edx
push eax
lea ecx, [esp + 0x78]
call fcn.00402e80
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
push eax
push esi
push edi
push ecx
push edx
lea ecx, [esp + 0xbc]
mov dword [esp + 0xd4], 0xf
mov dword [esp + 0xd0], 0
mov byte [esp + 0xc0], 0
call fcn.00404160
cmp dword [esp + 0xbc], 3
mov byte [esp + 0x9c8], 0x21
jb 0x414338
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0xc8]
call fcn.00407440
cmp edi, 0xfffffffc
je 0x414368
test edi, edi
jne 0x414346
call fcn.0041a7c5
mov ebx, 0x10
cmp dword [edi + 0x18], ebx
jb 0x414355
mov eax, dword [edi + 4]
jmp 0x414358
lea eax, [edi + 4]
mov ecx, dword [edi + 0x14]
add ecx, eax
cmp esi, ecx
jb 0x41436d
call fcn.0041a7c5
jmp 0x41436d
mov ebx, 0x10
mov eax, dword [esp + 0x100]
inc esi
cmp dword [esp + 0x114], ebx
jae 0x414385
lea eax, [esp + 0x100]
lea edx, [esp + 0xfc]
push edx
push eax
lea ecx, [esp + 0x88]
call fcn.00402e80
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
push esi
push edi
push eax
push ecx
lea edx, [esp + 0x4c]
push edx
lea ecx, [esp + 0x110]
call fcn.004038d0
mov byte [esp + 0x9c8], 0x20
cmp dword [esp + 0xc0], ebx
jb 0x4143de
mov eax, dword [esp + 0xac]
push eax
call fcn.0041a65d
add esp, 4
cmp dword [esp + 0x110], 0
ja 0x414209
jmp 0x414402
lea ecx, [esp + 0xfc]
push ecx
lea ecx, [esp + 0xc8]
call fcn.00407440
lea eax, [esp + 0x588]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x414410
sub eax, edx
push eax
lea edx, [esp + 0x58c]
push edx
lea ecx, [esp + 0x104]
call fcn.00403d50
mov eax, dword [esp + 0x110]
xor esi, esi
test eax, eax
jbe 0x4144a8
jmp 0x414440
mov ebx, 0x10
cmp esi, eax
jbe 0x414455
call fcn.0041a7c5
mov eax, dword [esp + 0x110]
mov edi, dword [esp + 0x100]
cmp dword [esp + 0x114], ebx
jae 0x41446c
lea edi, [esp + 0x100]
cmp esi, eax
jbe 0x414475
call fcn.0041a7c5
cmp dword [esp + 0x114], ebx
mov ebx, dword [esp + 0x100]
jae 0x41448c
lea ebx, [esp + 0x100]
movsx eax, byte [edi + esi]
push eax
call fcn.0041bb44
mov byte [ebx + esi], al
mov eax, dword [esp + 0x114]
inc esi
add esp, 4
cmp esi, eax
jb 0x414440
mov esi, dword [esp + 0x160]
mov ecx, esi
sub ecx, dword [esp + 0x15c]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esp + 0x4c], 0
je 0x414932
mov dword [esp + 0x44], 0
mov ecx, dword [esp + 0xd4]
sub ecx, dword [esp + 0xd0]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x54], 0
je 0x4148d8
mov dword [esp + 0x60], 0
jmp 0x414527
mov esi, dword [esp + 0x160]
sub esi, dword [esp + 0x15c]
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x4c], ecx
jb 0x41454c
call fcn.0041a7c5
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x15c]
push 0xffffffffffffffff
xor edi, edi
add eax, edx
push edi
mov esi, 0xf
push eax
lea ecx, [esp + 0xb4]
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], edi
mov byte [esp + 0xb8], 0
call fcn.00403a60
mov ecx, dword [esp + 0xd4]
sub ecx, dword [esp + 0xd0]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov byte [esp + 0x9c8], 0x22
cmp dword [esp + 0x54], ecx
jb 0x4145ba
call fcn.0041a7c5
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0xd0]
push 0xffffffffffffffff
add eax, edx
push edi
push eax
lea ecx, [esp + 0xec]
mov dword [esp + 0x104], esi
mov dword [esp + 0x100], edi
mov byte [esp + 0xf0], 0
call fcn.00403a60
mov eax, dword [esp + 0xbc]
xor esi, esi
mov byte [esp + 0x9c8], 0x23
cmp eax, edi
jbe 0x41466a
cmp esi, eax
jbe 0x414612
call fcn.0041a7c5
mov eax, dword [esp + 0xbc]
mov ebx, dword [esp + 0xac]
mov edi, 0x10
cmp dword [esp + 0xc0], edi
jae 0x41462e
lea ebx, [esp + 0xac]
cmp esi, eax
jbe 0x414637
call fcn.0041a7c5
cmp dword [esp + 0xc0], edi
mov edi, dword [esp + 0xac]
jae 0x41464e
lea edi, [esp + 0xac]
movsx ecx, byte [ebx + esi]
push ecx
call fcn.0041bb44
mov byte [edi + esi], al
mov eax, dword [esp + 0xc0]
inc esi
add esp, 4
cmp esi, eax
jb 0x414612
mov eax, dword [esp + 0xf4]
xor esi, esi
test eax, eax
jbe 0x4146dc
cmp esi, eax
jbe 0x414687
call fcn.0041a7c5
mov eax, dword [esp + 0xf4]
cmp dword [esp + 0xf8], 0x10
mov ebx, dword [esp + 0xe4]
jae 0x41469f
lea ebx, [esp + 0xe4]
cmp esi, eax
jbe 0x4146a8
call fcn.0041a7c5
cmp dword [esp + 0xf8], 0x10
mov edi, dword [esp + 0xe4]
jae 0x4146c0
lea edi, [esp + 0xe4]
movsx edx, byte [ebx + esi]
push edx
call fcn.0041bb44
mov byte [edi + esi], al
mov eax, dword [esp + 0xf8]
inc esi
add esp, 4
cmp esi, eax
jb 0x414687
mov ecx, dword [esp + 0xe4]
mov esi, 0x10
cmp dword [esp + 0xf8], esi
jae 0x4146f8
lea ecx, [esp + 0xe4]
push eax
xor edi, edi
push edi
push ecx
lea ecx, [esp + 0xb4]
call fcn.00402ce0
cmp eax, 0xffffffff
jne 0x414758
mov eax, dword [esp + 0xbc]
add eax, 0xfffffffc
push eax
push edi
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0xb4]
call fcn.0040b3f0
or dword [esp + 0x1c], 1
mov ecx, dword [eax + 0x14]
cmp dword [eax + 0x18], esi
jb 0x41473d
mov eax, dword [eax + 4]
jmp 0x414740
add eax, 4
push ecx
push edi
push eax
lea ecx, [esp + 0x108]
call fcn.00402ce0
cmp eax, 0xffffffff
jne 0x414758
xor bl, bl
jmp 0x41475a
mov bl, 1
test byte [esp + 0x1c], 1
je 0x414779
and dword [esp + 0x1c], 0xfffffffe
cmp dword [esp + 0x38], esi
jb 0x414779
mov edx, dword [esp + 0x24]
push edx
call fcn.0041a65d
add esp, 4
test bl, bl
jne 0x414811
cmp dword [esp + 0xf8], esi
jb 0x41479a
mov eax, dword [esp + 0xe4]
push eax
call fcn.0041a65d
add esp, 4
mov dword [esp + 0xf8], 0xf
mov dword [esp + 0xf4], edi
mov byte [esp + 0xe4], 0
mov byte [esp + 0x9c8], 0x20
cmp dword [esp + 0xc0], esi
jb 0x4147d5
mov ecx, dword [esp + 0xac]
push ecx
call fcn.0041a65d
add esp, 4
mov ecx, dword [esp + 0xd4]
sub ecx, dword [esp + 0xd0]
mov esi, dword [esp + 0x54]
add dword [esp + 0x60], 0x1c
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 + 0x54], esi
cmp esi, eax
jb 0x414520
jmp 0x4148d8
mov ecx, dword [esp + 0x160]
sub ecx, dword [esp + 0x15c]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x4c], ecx
jb 0x41483d
call fcn.0041a7c5
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x15c]
add eax, edx
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.0040b930
add esp, 8
push 0xffffffffffffffff
push edi
push eax
lea ecx, [esp + 0x25c]
mov byte [esp + 0x9d4], 0x24
call fcn.00403e30
cmp dword [esp + 0x38], 8
jb 0x414884
mov edx, dword [esp + 0x24]
push edx
call fcn.0041a65d
add esp, 4
cmp dword [esp + 0xf8], esi
jb 0x41489d
mov eax, dword [esp + 0xe4]
push eax
call fcn.0041a65d
add esp, 4
mov dword [esp + 0xf8], 0xf
mov dword [esp + 0xf4], edi
mov byte [esp + 0xe4], 0
mov byte [esp + 0x9c8], 0x20
cmp dword [esp + 0xc0], esi
jb 0x4148d8
mov ecx, dword [esp + 0xac]
push ecx
call fcn.0041a65d
add esp, 4
mov edx, dword [esp + 0x264]
push 0
push 0x4298ec
push edx
push 0
lea ecx, [esp + 0x260]
call fcn.004094d0
test eax, eax
jne 0x414932
mov esi, dword [esp + 0x160]
mov edi, dword [esp + 0x4c]
add dword [esp + 0x44], 0x1c
mov ecx, esi
sub ecx, dword [esp + 0x15c]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc edi
add eax, edx
mov dword [esp + 0x4c], edi
cmp edi, eax
jb 0x4144e1
cmp dword [esp + 0x114], 0x10
jb 0x41494c
mov ecx, dword [esp + 0x100]
push ecx
call fcn.0041a65d
add esp, 4
lea ecx, [esp + 0xc4]
mov dword [esp + 0x114], 0xf
mov dword [esp + 0x110], 0
mov byte [esp + 0x100], 0
mov byte [esp + 0x9c8], 0x15
call fcn.00405c80
mov edi, 8
mov ecx, dword [0x4301dc]
sub ecx, dword [0x4301d8]
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
xor esi, esi
add eax, edx
mov byte [esp + 0x17], 0
je 0x414a20
xor ebx, ebx
cmp esi, eax
jb 0x4149b6
call fcn.0041a7c5
mov edx, dword [0x4301d8]
mov eax, dword [esp + 0x270]
lea ecx, [edx + ebx + 0x38]
cmp dword [esp + 0x284], edi
jae 0x4149d7
lea eax, [esp + 0x270]
mov edx, dword [esp + 0x280]
push edx
push eax
mov eax, dword [ecx + 0x14]
push eax
push 0
call fcn.004094d0
test eax, eax
je 0x414a1b
mov ecx, dword [0x4301dc]
sub ecx, dword [0x4301d8]
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
inc esi
add eax, edx
add ebx, 0x198
cmp esi, eax
jb 0x4149b6
jmp 0x414a20
mov byte [esp + 0x17], 1
lea ecx, [esp + 0x234]
call fcn.0040f280
test al, al
je 0x414c05
cmp byte [esp + 0x17], 0
jne 0x414c05
xor ecx, ecx
push 0xe
mov word [esp + 0xb0], cx
mov esi, 7
push 0x429c94
lea ecx, [esp + 0xb0]
mov dword [esp + 0xc8], esi
mov dword [esp + 0xc4], 0
call fcn.0040a270
push 1
lea edx, [esp + 0xac]
push edx
lea eax, [esp + 0x274]
push eax
lea ecx, [esp + 0x140]
push ecx
mov byte [esp + 0x9d8], 0x25
call fcn.0040c900
add esp, 0x10
mov edx, dword [eax + 0x14]
push 0
push 0x4298ec
push edx
push 0
mov ecx, eax
mov byte [esp + 0x9d8], 0x26
call fcn.004094d0
test eax, eax
setne bl
cmp dword [esp + 0x14c], edi
jb 0x414ad7
mov eax, dword [esp + 0x138]
push eax
call fcn.0041a65d
add esp, 4
xor ecx, ecx
mov dword [esp + 0x14c], esi
mov dword [esp + 0x148], 0
mov word [esp + 0x138], cx
mov byte [esp + 0x9c8], 0x15
cmp dword [esp + 0xc0], edi
jb 0x414b14
mov edx, dword [esp + 0xac]
push edx
call fcn.0041a65d
add esp, 4
test bl, bl
je 0x414bf3
push 0xe
xor eax, eax
push 0x429c94
lea ecx, [esp + 0xb0]
mov dword [esp + 0xc8], esi
mov dword [esp + 0xc4], 0
mov word [esp + 0xb4], ax
call fcn.0040a270
push 1
lea ecx, [esp + 0xac]
push ecx
lea edx, [esp + 0x274]
push edx
lea eax, [esp + 0x140]
push eax
mov byte [esp + 0x9d8], 0x27
call fcn.0040c900
add esp, 0x10
cmp dword [eax + 0x18], edi
jb 0x414b7f
mov eax, dword [eax + 4]
jmp 0x414b82
add eax, 4
push eax
call fcn.0041ba19
add esp, 4
mov esi, eax
cmp dword [esp + 0x14c], edi
jb 0x414ba6
mov ecx, dword [esp + 0x138]
push ecx
call fcn.0041a65d
add esp, 4
xor ebx, ebx
xor edx, edx
mov dword [esp + 0x14c], 7
mov dword [esp + 0x148], ebx
mov word [esp + 0x138], dx
mov byte [esp + 0x9c8], 0x15
cmp dword [esp + 0xc0], edi
jb 0x414be5
mov eax, dword [esp + 0xac]
push eax
call fcn.0041a65d
add esp, 4
mov dword [esp + 0x2c4], esi
mov dword [esp + 0x2c8], ebx
lea ecx, [esp + 0x234]
push ecx
mov ecx, 0x4301cc
call fcn.004100c0
lea ecx, [esp + 0x234]
call fcn.00409ec0
lea ecx, [esp + 0x150]
call fcn.00405c80
cmp dword [esp + 0x130], 0x10
mov byte [esp + 0x9c8], 0x10
jb 0x414c3f
mov edx, dword [esp + 0x11c]
push edx
call fcn.0041a65d
add esp, 4
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x564]
push eax
push ecx
call fcn.0041b8c9
add esp, 8
test eax, eax
jne 0x414cf4
lea edi, [eax + 0x10]
jmp 0x413870
lea ecx, [esp + 0x150]
call fcn.00405c80
mov esi, 0x10
cmp dword [esp + 0x130], esi
jb 0x414c8e
mov edx, dword [esp + 0x11c]
push edx
call fcn.0041a65d
add esp, 4
xor edi, edi
mov ebx, 0xf
mov dword [esp + 0x130], ebx
mov dword [esp + 0x12c], edi
mov byte [esp + 0x11c], 0
cmp dword [esp + 0x184], esi
jb 0x414cc4
mov eax, dword [esp + 0x170]
push eax
call fcn.0041a65d
add esp, 4
mov dword [esp + 0x184], ebx
mov dword [esp + 0x180], edi
mov byte [esp + 0x170], 0
cmp dword [esp + 0x1a0], esi
jb 0x415b58
mov ecx, dword [esp + 0x18c]
push ecx
jmp 0x415b50
mov edx, dword [esp + 0x18]
push edx
call fcn.0041b70b
mov ebx, dword [0x4301dc]
mov edi, dword [0x4301d8]
mov ecx, ebx
sub ecx, edi
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 8
mov eax, edx
xor esi, esi
shr eax, 0x1f
add esp, 4
add eax, edx
mov dword [esp + 0x18], esi
je 0x415b03
cmp esi, eax
jb 0x414d45
call fcn.0041a7c5
mov ebx, dword [0x4301dc]
mov edi, dword [0x4301d8]
mov esi, dword [esp + 0x18]
imul esi, esi, 0x198
mov al, byte [esi + edi + 0xc7]
sub ebx, edi
mov byte [esp + 0x17], al
mov ecx, ebx
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 8
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x18], ecx
jb 0x414d82
call fcn.0041a7c5
mov edi, dword [0x4301d8]
xor edx, edx
push 0xffffffffffffffff
push edx
lea edi, [esi + edi + 0x1c]
push edi
lea ecx, [esp + 0xd0]
mov dword [esp + 0xe8], 7
mov dword [esp + 0xe4], 0
mov word [esp + 0xd4], dx
call fcn.00403e30
mov eax, dword [esp + 0xd8]
push 0x10
push 0x429ac8
push eax
push 0
lea ecx, [esp + 0xd4]
mov byte [esp + 0x9d8], 0x28
call fcn.004094d0
test eax, eax
je 0x414de6
cmp byte [esp + 0x17], 0
je 0x414e48
mov ecx, dword [0x4301dc]
sub ecx, dword [0x4301d8]
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 8
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x18], ecx
jb 0x414e10
call fcn.0041a7c5
mov edx, dword [0x4301d8]
push 0x429ab0
lea eax, [esi + edx + 0x38]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.00405450
or dword [esp + 0x28], 2
push eax
mov byte [esp + 0x9d8], 0x29
call fcn.0040c320
add esp, 0x10
test al, al
je 0x414e48
mov bl, 1
jmp 0x414e4a
xor bl, bl
test byte [esp + 0x1c], 2
mov dword [esp + 0x9c8], 0x28
je 0x414e75
and dword [esp + 0x1c], 0xfffffffd
cmp dword [esp + 0x38], 8
jb 0x414e75
mov edx, dword [esp + 0x24]
push edx
call fcn.0041a65d
add esp, 4
test bl, bl
je 0x415aad
mov ecx, dword [0x4301dc]
sub ecx, dword [0x4301d8]
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jb 0x414ea7
call fcn.0041a7c5
mov ecx, dword [0x4301d8]
lea eax, [esi + ecx + 0x38]
push 0xffffffffffffffff
xor esi, esi
push esi
xor edx, edx
push eax
lea ecx, [esp + 0x140]
mov dword [esp + 0x158], 7
mov dword [esp + 0x154], esi
mov word [esp + 0x144], dx
call fcn.00403e30
push 9
mov edi, 0xf
push 0x429448
lea ecx, [esp + 0xe8]
mov byte [esp + 0x9d0], 0x2a
mov dword [esp + 0x100], edi
mov dword [esp + 0xfc], esi
mov byte [esp + 0xec], 0
call fcn.00403d50
push 9
push 0x42943c
lea ecx, [esp + 0x120]
mov byte [esp + 0x9d0], 0x2b
mov dword [esp + 0x138], edi
mov dword [esp + 0x134], esi
mov byte [esp + 0x124], 0
call fcn.00403d50
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x24]
push ecx
mov byte [esp + 0x9d0], 0x2c
call fcn.0040a990
add esp, 8
lea edx, [esp + 0xe0]
push edx
lea ecx, [esp + 0x11c]
push ecx
push eax
lea ecx, [esp + 0x1b0]
mov byte [esp + 0x9d4], 0x2d
call fcn.004067d0
mov ebx, 0x10
cmp dword [esp + 0x38], ebx
jb 0x414fa0
mov edx, dword [esp + 0x24]
push edx
call fcn.0041a65d
add esp, 4
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], esi
mov byte [esp + 0x24], 0
cmp dword [esp + 0x130], ebx
jb 0x414fc6
mov eax, dword [esp + 0x11c]
push eax
call fcn.0041a65d
add esp, 4
mov dword [esp + 0x130], edi
mov dword [esp + 0x12c], esi
mov byte [esp + 0x11c], 0
mov byte [esp + 0x9c8], 0x31
cmp dword [esp + 0xf8], ebx
jb 0x414ffd
mov ecx, dword [esp + 0xe4]
push ecx
call fcn.0041a65d
add esp, 4
push esi
lea ecx, [esp + 0x1a8]
mov dword [esp + 0xfc], edi
mov dword [esp + 0xf8], esi
mov byte [esp + 0xe8], 0
call fcn.004077a0
test al, al
je 0x415a7f
push 7
push 0x429348
lea ecx, [esp + 0xb0]
mov dword [esp + 0xc8], 0xf
mov dword [esp + 0xc4], 0
mov byte [esp + 0xb4], 0
call fcn.00403d50
mov edi, dword [esp + 0x1d8]
mov ebx, dword [esp + 0x1c0]
lea edx, [esp + 0xa8]
push edx
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x9d0], 0x32
call fcn.00404320
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x415097
cmp eax, ebx
je 0x41509c
call fcn.0041a7c5
cmp dword [esi + 4], edi
mov byte [esp + 0x9c8], 0x31
setne bl
cmp dword [esp + 0xc0], 0x10
jb 0x4150c4
mov ecx, dword [esp + 0xac]
push ecx
call fcn.0041a65d
add esp, 4
test bl, bl
je 0x415a7f
push 7
mov edi, 0xf
xor esi, esi
push 0x429348
lea ecx, [esp + 0x104]
mov dword [esp + 0x11c], edi
mov dword [esp + 0x118], esi
mov byte [esp + 0x108], 0
call fcn.00403d50
lea edx, [esp + 0xfc]
push edx
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x9cc], 0x33
call fcn.00406270
push 0xffffffffffffffff
push esi
push eax
lea ecx, [esp + 0x15c]
mov dword [esp + 0x174], edi
mov dword [esp + 0x170], esi
mov byte [esp + 0x160], 0
call fcn.00403a60
mov ebx, 0x10
mov byte [esp + 0x9c8], 0x35
cmp dword [esp + 0x114], ebx
jb 0x415164
mov eax, dword [esp + 0x100]
push eax
call fcn.0041a65d
add esp, 4
push 0xa
push 0x429404
lea ecx, [esp + 0x120]
mov dword [esp + 0x11c], edi
mov dword [esp + 0x118], esi
mov byte [esp + 0x108], 0
mov dword [esp + 0x138], edi
mov dword [esp + 0x134], esi
mov byte [esp + 0x124], 0
call fcn.00403d50
lea ecx, [esp + 0x118]
push ecx
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x9cc], 0x36
call fcn.00406270
push 0xffffffffffffffff
push esi
push eax
lea ecx, [esp + 0xb4]
mov dword [esp + 0xcc], edi
mov dword [esp + 0xc8], esi
mov byte [esp + 0xb8], 0
call fcn.00403a60
mov byte [esp + 0x9c8], 0x38
cmp dword [esp + 0x130], ebx
jb 0x415206
mov edx, dword [esp + 0x11c]
push edx
call fcn.0041a65d
add esp, 4
cmp byte [esp + 0x17], 0
mov ebx, dword [esp + 0x18]
sete al
push ebx
mov ecx, 0x4301cc
mov dword [esp + 0x134], edi
mov dword [esp + 0x130], esi
mov byte [esp + 0x120], 0
mov byte [esp + 0x1a], al
call fcn.00409360
mov cl, byte [esp + 0x16]
push 2
mov byte [eax + 0xe4], cl
mov eax, dword [esp + 0xc0]
push 0x429bdc
push eax
xor edi, edi
push edi
lea ecx, [esp + 0xb8]
call fcn.00402da0
test eax, eax
jne 0x4152a4
push edi
push 0x4292e8
lea ecx, [esp + 0xe8]
mov dword [esp + 0x100], 0xf
mov dword [esp + 0xfc], edi
mov byte [esp + 0xec], al
call fcn.00403d50
or dword [esp + 0x1c], 4
lea eax, [esp + 0xe0]
mov byte [esp + 0x9c8], 0x39
jmp 0x4152ab
lea eax, [esp + 0xa8]
lea ecx, [esp + 0x150]
push ecx
push eax
lea edx, [esp + 0x104]
push edx
call fcn.00404bb0
push eax
lea eax, [esp + 0x30]
push eax
mov dword [esp + 0x9dc], 0x3a
call fcn.0040b930
add esp, 0x14
mov esi, eax
push ebx
mov ecx, 0x4301cc
mov byte [esp + 0x9cc], 0x3b
call fcn.00409360
push 0xffffffffffffffff
add eax, 0xe8
push edi
push esi
mov ecx, eax
call fcn.00403e30
cmp dword [esp + 0x38], 8
jb 0x415313
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0041a65d
add esp, 4
xor edx, edx
mov esi, 0x10
mov dword [esp + 0x38], 7
mov dword [esp + 0x34], edi
mov word [esp + 0x24], dx
cmp dword [esp + 0x114], esi
jb 0x415344
mov eax, dword [esp + 0x100]
push eax
call fcn.0041a65d
add esp, 4
test byte [esp + 0x1c], 4
mov dword [esp + 0x114], 0xf
mov dword [esp + 0x110], edi
mov byte [esp + 0x100], 0
mov dword [esp + 0x9c8], 0x38
je 0x41538e
and dword [esp + 0x1c], 0xfffffffb
cmp dword [esp + 0xf8], esi
jb 0x41538e
mov ecx, dword [esp + 0xe4]
push ecx
call fcn.0041a65d
add esp, 4
push 8
push 0x4293b4
lea ecx, [esp + 0xe8]
mov dword [esp + 0x100], 0xf
mov dword [esp + 0xfc], edi
mov byte [esp + 0xec], 0
call fcn.00403d50
lea edx, [esp + 0xe0]
push edx
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x9cc], 0x3c
call fcn.00406270
cmp dword [eax + 0x18], esi
jb 0x4153e1
mov eax, dword [eax + 4]
jmp 0x4153e4
add eax, 4
push eax
call fcn.0041ba0e
add esp, 4
push ebx
mov ecx, 0x4301cc
mov edi, eax
call fcn.00409360
mov dword [eax + 0x104], edi
mov byte [esp + 0x9c8], 0x38
cmp dword [esp + 0xf8], esi
jb 0x415421
mov eax, dword [esp + 0xe4]
push eax
call fcn.0041a65d
add esp, 4
push 0x429c8c
lea ecx, [esp + 0x24]
call fcn.00404670
mov ecx, dword [esp + 0x1c0]
mov edi, dword [esp + 0x1d8]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x64]
mov dword [esp + 0x6c], ecx
push eax
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x9d0], 0x3d
call fcn.00404320
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x41546d
cmp eax, dword [esp + 0x68]
je 0x415472
call fcn.0041a7c5
cmp dword [esi + 4], edi
mov byte [esp + 0x9c8], 0x38
setne byte [esp + 0x16]
cmp dword [esp + 0x38], 0x10
jb 0x415496
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0041a65d
add esp, 4
cmp byte [esp + 0x16], 0
je 0x4154fe
push 0x429c8c
lea ecx, [esp + 0x24]
call fcn.00404670
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x9cc], 0x3e
call fcn.00406270
push ebx
mov ecx, 0x4301cc
mov esi, eax
call fcn.00409360
push 0xffffffffffffffff
add eax, 0x15c
push 0
push esi
mov ecx, eax
call fcn.00403a60
cmp dword [esp + 0x38], 0x10
mov byte [esp + 0x9c8], 0x38
jb 0x4154fe
mov eax, dword [esp + 0x24]
push eax
call fcn.0041a65d
add esp, 4
push 0x429c80
lea ecx, [esp + 0x24]
call fcn.00404670
mov ecx, dword [esp + 0x1c0]
mov edi, dword [esp + 0x1d8]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x50]
mov dword [esp + 0x84], ecx
push eax
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x9d0], 0x3f
call fcn.00404320
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x415550
cmp eax, dword [esp + 0x80]
je 0x415555
call fcn.0041a7c5
cmp dword [esi + 4], edi
mov byte [esp + 0x9c8], 0x38
setne byte [esp + 0x16]
cmp dword [esp + 0x38], 0x10
jb 0x415579
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0041a65d
add esp, 4
cmp byte [esp + 0x16], 0
je 0x4155e1
push 0x429c80
lea ecx, [esp + 0x24]
call fcn.00404670
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x9cc], 0x40
call fcn.00406270
push ebx
mov ecx, 0x4301cc
mov esi, eax
call fcn.00409360
push 0xffffffffffffffff
add eax, 0x124
push 0
push esi
mov ecx, eax
call fcn.00403a60
cmp dword [esp + 0x38], 0x10
mov byte [esp + 0x9c8], 0x38
jb 0x4155e1
mov eax, dword [esp + 0x24]
push eax
call fcn.0041a65d
add esp, 4
push 0x4293d8
lea ecx, [esp + 0x24]
call fcn.00404670
mov ecx, dword [esp + 0x1c0]
mov edi, dword [esp + 0x1d8]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
mov dword [esp + 0x74], ecx
push eax
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x9d0], 0x41
call fcn.00404320
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x41562d
cmp eax, dword [esp + 0x70]
je 0x415632
call fcn.0041a7c5
cmp dword [esi + 4], edi
mov byte [esp + 0x9c8], 0x38
setne byte [esp + 0x16]
cmp dword [esp + 0x38], 0x10
jb 0x415656
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0041a65d
add esp, 4
cmp byte [esp + 0x16], 0
je 0x4156be
push 0x4293b4
lea ecx, [esp + 0x24]
call fcn.00404670
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x9cc], 0x42
call fcn.00406270
push ebx
mov ecx, 0x4301cc
mov esi, eax
call fcn.00409360
push 0xffffffffffffffff
add eax, 0x108
push 0
push esi
mov ecx, eax
call fcn.00403a60
cmp dword [esp + 0x38], 0x10
mov byte [esp + 0x9c8], 0x38
jb 0x4156be
mov eax, dword [esp + 0x24]
push eax
call fcn.0041a65d
add esp, 4
push 0x4293a8
lea ecx, [esp + 0x24]
call fcn.00404670
mov ecx, dword [esp + 0x1c0]
mov edi, dword [esp + 0x1d8]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0xa4]
mov dword [esp + 0x7c], ecx
push eax
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x9d0], 0x43
call fcn.00404320
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x41570d
cmp eax, dword [esp + 0x78]
je 0x415712
call fcn.0041a7c5
cmp dword [esi + 4], edi
mov byte [esp + 0x9c8], 0x38
setne byte [esp + 0x16]
cmp dword [esp + 0x38], 0x10
jb 0x415736
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0041a65d
add esp, 4
cmp byte [esp + 0x16], 0
je 0x4157f2
push 0x4293a8
lea ecx, [esp + 0x24]
call fcn.00404670
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x9cc], 0x44
call fcn.00406270
push ebx
mov ecx, 0x4301cc
mov esi, eax
call fcn.00409360
push 0xffffffffffffffff
add eax, 0x140
push 0
push esi
mov ecx, eax
call fcn.00403a60
cmp dword [esp + 0x38], 0x10
mov byte [esp + 0x9c8], 0x38
jb 0x4157a2
mov eax, dword [esp + 0x24]
push eax
call fcn.0041a65d
add esp, 4
push ebx
mov ecx, 0x4301cc
call fcn.00409360
add eax, 0x140
cmp dword [eax + 0x14], 2
jbe 0x415810
push ebx
mov ecx, 0x4301cc
call fcn.00409360
mov ecx, eax
mov eax, dword [ecx + 0x154]
add ecx, 0x140
cmp eax, 2
jb 0x4157e1
push 0xffffffffffffffff
push 2
call fcn.00403090
jmp 0x415810
mov edx, 2
push 0
sub edx, eax
push edx
call fcn.004039b0
jmp 0x415810
push ebx
mov ecx, 0x4301cc
call fcn.00409360
add eax, 0x140
push 2
push 0x4293a4
mov ecx, eax
call fcn.00403d50
cmp byte [esp + 0x17], 0
je 0x415a2a
push 0x429c74
lea ecx, [esp + 0x24]
call fcn.00404670
mov eax, dword [esp + 0x1c0]
mov edi, dword [esp + 0x1d8]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x94]
push edx
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x9d0], 0x45
mov dword [esp + 0x44], eax
call fcn.00404320
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x41586a
cmp eax, dword [esp + 0x3c]
je 0x41586f
call fcn.0041a7c5
cmp dword [esi + 4], edi
mov byte [esp + 0x9c8], 0x38
setne byte [esp + 0x16]
cmp dword [esp + 0x38], 0x10
jb 0x415893
mov eax, dword [esp + 0x24]
push eax
call fcn.0041a65d
add esp, 4
cmp byte [esp + 0x16], 0
je 0x41594c
push 0x429c74
lea ecx, [esp + 0xe4]
call fcn.00404670
lea ecx, [esp + 0xe0]
push ecx
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x9cc], 0x46
call fcn.00406270
push eax
lea edx, [esp + 0x24]
push edx
call fcn.0040b930
add esp, 8
mov esi, eax
push ebx
mov ecx, 0x4301cc
mov byte [esp + 0x9cc], 0x47
call fcn.00409360
push 0xffffffffffffffff
add eax, 0xc8
push 0
push esi
mov ecx, eax
call fcn.00403e30
cmp dword [esp + 0x38], 8
jb 0x415913
mov eax, dword [esp + 0x24]
push eax
call fcn.0041a65d
add esp, 4
xor ecx, ecx
cmp dword [esp + 0xf8], 0x10
mov dword [esp + 0x38], 7
mov dword [esp + 0x34], 0
mov word [esp + 0x24], cx
mov byte [esp + 0x9c8], 0x38
jb 0x41594c
mov edx, dword [esp + 0xe4]
push edx
call fcn.0041a65d
add esp, 4
push 0x429c6c
lea ecx, [esp + 0x24]
call fcn.00404670
mov eax, dword [esp + 0x1c0]
mov edi, dword [esp + 0x1d8]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x9c]
push edx
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x9d0], 0x48
mov dword [esp + 0x5c], eax
call fcn.00404320
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x41599b
cmp eax, dword [esp + 0x54]
je 0x4159a0
call fcn.0041a7c5
cmp dword [esi + 4], edi
mov byte [esp + 0x9c8], 0x38
setne byte [esp + 0x16]
cmp dword [esp + 0x38], 0x10
jb 0x4159c4
mov eax, dword [esp + 0x24]
push eax
call fcn.0041a65d
add esp, 4
cmp byte [esp + 0x16], 0
je 0x415a2a
push 0x429c6c
lea ecx, [esp + 0x24]
call fcn.00404670
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x9cc], 0x49
call fcn.00406270
push ebx
mov ecx, 0x4301cc
mov esi, eax
call fcn.00409360
push 0xffffffffffffffff
add eax, 0x178
push 0
push esi
mov ecx, eax
call fcn.00403a60
mov esi, 0x10
cmp dword [esp + 0x38], esi
jb 0x415a2f
mov edx, dword [esp + 0x24]
push edx
call fcn.0041a65d
add esp, 4
jmp 0x415a2f
mov esi, 0x10
cmp dword [esp + 0xc0], esi
jb 0x415a48
mov eax, dword [esp + 0xac]
push eax
call fcn.0041a65d
add esp, 4
mov dword [esp + 0xc0], 0xf
mov dword [esp + 0xbc], 0
mov byte [esp + 0xac], 0
cmp dword [esp + 0x168], esi
jb 0x415a7f
mov ecx, dword [esp + 0x154]
push ecx
call fcn.0041a65d
add esp, 4
lea ecx, [esp + 0x1a4]
mov byte [esp + 0x9c8], 0x2a
call fcn.00406700
cmp dword [esp + 0x14c], 8
jb 0x415aad
mov edx, dword [esp + 0x138]
push edx
call fcn.0041a65d
add esp, 4
cmp dword [esp + 0xdc], 8
mov byte [esp + 0x9c8], 0x10
jb 0x415acf
mov eax, dword [esp + 0xc8]
push eax
call fcn.0041a65d
add esp, 4
mov ebx, dword [0x4301dc]
mov edi, dword [0x4301d8]
mov esi, dword [esp + 0x18]
mov ecx, ebx
sub ecx, edi
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
inc esi
add eax, edx
mov dword [esp + 0x18], esi
cmp esi, eax
jb 0x414d45
mov esi, 0x10
cmp dword [esp + 0x184], esi
jb 0x415b21
mov ecx, dword [esp + 0x170]
push ecx
call fcn.0041a65d
add esp, 4
mov dword [esp + 0x184], 0xf
mov dword [esp + 0x180], 0
mov byte [esp + 0x170], 0
cmp dword [esp + 0x1a0], esi
jb 0x415b58
mov edx, dword [esp + 0x18c]
push edx
call fcn.0041a65d
add esp, 4
mov ecx, dword [esp + 0x9c0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x9a8]
xor ecx, esp
call fcn.0041ac87
mov esp, ebp
pop ebp
ret