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

Disassembly:
sub esp, 0x84
mov eax, edx
mov edx, ecx
mov dword [esp + 0x10], eax
imul eax, eax, 0x50
push ebx
lea ebx, [edx + 0x2e0]
mov dword [esp + 0x18], edx
push ebp
mov ebp, dword [edx]
lea ecx, [edx + 0x148]
add ebx, eax
mov dword [esp + 0x88], ecx
push esi
push edi
mov ecx, dword [ebp]
movzx eax, byte [ebx + 0x2c]
mov esi, dword [ebp + 8]
mov edi, dword [ebx + 0x40]
mov dword [esp + 0x78], ecx
imul ecx, eax, 0x50
mov eax, dword [edx + 4]
add eax, 8
mov dword [esp + 0x40], ebp
mov dword [esp + 0x14], esi
mov dword [esp + 0x38], ebx
add eax, ecx
mov dword [esp + 0x48], edi
mov dword [esp + 0x10], eax
lea ecx, [edx + 0x44]
mov eax, dword [eax + 0x30]
mov edx, eax
mov dword [esp + 0x34], eax
call fcn.00458b86
mov ecx, dword [esp + 0x24]
not eax
and eax, dword [esp + 0x98]
not edx
and edx, dword [esp + 0x9c]
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x4c], edx
mov eax, dword [ecx + 0x18]
mov edx, dword [ecx + 0x1c]
mov ecx, dword [esp + 0x20]
call fcn.004a0500
xor edx, edx
inc edx
and eax, edx
mov dword [esp + 0x2c], eax
xor eax, eax
test byte [edi + 0x24], 0x40
mov dword [esp + 0x8c], eax
je 0x456150
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x44], edx
test byte [ecx + 0x22], 0x20
je 0x456154
mov dword [esp + 0x44], eax
mov ecx, esi
call fcn.00429cb7
mov ecx, esi
mov dword [esp + 0x28], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0xc], eax
call fcn.00429cb7
xor edi, edi
mov dword [esp + 0x80], eax
cmp byte [ebx + 0x2c], 0
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x10]
jbe 0x4561a5
test byte [eax + 0x24], 8
je 0x4561a5
mov eax, dword [ebp + 0x48]
mov ecx, esi
inc eax
push edi
push eax
push edi
push 0x17
mov dword [ebp + 0x48], eax
pop edx
mov dword [ebx], eax
call fcn.00429abf
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x74], ecx
test cl, 0x10
je 0x4561eb
push dword [eax + 0x18]
mov esi, dword [eax + 0x1c]
mov ecx, dword [esp + 0x18]
push edi
push esi
push 0x11
pop edx
call fcn.00429abf
add esp, 0xc
push edi
push dword [esp + 0x2c]
push esi
mov esi, dword [esp + 0x20]
mov ecx, esi
push 0x14
pop edx
call fcn.00429abf
add esp, 0xc
mov dword [ebx + 0x34], eax
mov byte [ebx + 0x2d], 0xe
jmp 0x456365
mov eax, dword [esp + 0x48]
mov edx, dword [eax + 0x24]
bt edx, 0xa
jae 0x4563bf
movzx eax, word [eax + 0x28]
mov ecx, ebp
inc dword [ebp + 0x64]
mov dword [esp + 0x38], eax
add eax, 2
mov edx, eax
mov dword [esp + 0x50], eax
call fcn.0043a9e7
cmp dword [esp + 0x38], 0
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x20], ecx
mov ecx, edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x64], edi
jbe 0x45628a
mov esi, dword [esp + 0x48]
mov eax, dword [esi + 0x30]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x456277
mov eax, dword [esp + 0x40]
add eax, 2
add eax, ecx
test byte [edx + 0x12], 1
push eax
je 0x456266
push dword [esp + 0x30]
push ecx
push ebx
mov ecx, ebp
call fcn.00455ca5
mov eax, dword [ebx + 0x10]
add esp, 0x10
mov dword [esp + 0x20], eax
jmp 0x456273
mov edx, dword [edx]
mov ecx, ebp
mov edx, dword [edx + 0x10]
call fcn.00439cd5
pop ecx
mov ecx, dword [esp + 0x64]
inc ecx
mov dword [esp + 0x64], ecx
cmp ecx, dword [esp + 0x38]
jl 0x456233
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
push edi
push eax
mov eax, dword [esp + 0x50]
mov ecx, esi
push dword [eax + 0x18]
push 0x17
pop edx
call fcn.00429abf
mov eax, dword [esp + 0x4c]
add esp, 0xc
inc eax
mov ecx, esi
push edi
push eax
push dword [esp + 0x40]
push 0x17
pop edx
call fcn.00429abf
mov edi, dword [esp + 0x54]
add esp, 0xc
cmp byte [edi + 0x1c], 0
push 0xfffffffffffffffe
pop eax
push 0xfffffffffffffff5
pop ecx
cmovne eax, ecx
mov ecx, esi
push eax
push dword [edi + 0x20]
push dword [esp + 0x48]
push dword [esp + 0x2c]
push dword [esp + 0x44]
push 0xc
pop edx
call fcn.00429bde
xor eax, eax
add esp, 0x14
mov byte [edi + 0x1c], al
mov edi, eax
cmp dword [esp + 0x38], eax
jbe 0x456325
mov esi, dword [esp + 0x48]
cmp edi, 0x10
jge 0x456321
mov ax, word [esi + 0x1e]
mov cx, di
shr ax, cl
xor ecx, ecx
inc ecx
test cl, al
je 0x45631a
mov edx, dword [esi + 0x30]
mov ecx, ebx
mov edx, dword [edx + edi*4]
call fcn.00455bca
inc edi
cmp edi, dword [esp + 0x38]
jl 0x4562f7
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
push dword [esp + 0x50]
mov dword [ebx + 0x30], eax
mov eax, 0x9a
cmp byte [ecx + 0x26], 0
mov ecx, ebp
lea edx, [eax + 5]
cmovne eax, edx
mov edx, dword [esp + 0x44]
mov byte [ebx + 0x2d], al
mov eax, dword [esi + 0x20]
mov dword [ebx + 0x34], eax
call fcn.0043aa12
pop ecx
mov ecx, ebp
call fcn.00438dbc
mov esi, dword [esp + 0x14]
xor edi, edi
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x15c]
mov ecx, dword [ecx + 0x154]
mov dword [esp + 0x18], ecx
test ecx, ecx
jle 0x45729d
mov edi, eax
xor edx, edx
mov eax, ecx
movzx ecx, word [edi + 0x14]
mov dword [esp + 0x50], edx
test cl, 6
jne 0x457275
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
and ecx, dword [ebx + 0x48]
and eax, dword [ebx + 0x4c]
or ecx, eax
je 0x4571fd
mov ecx, dword [esp + 0x24]
xor eax, eax
inc eax
mov byte [ecx + 0x27], al
mov eax, dword [esp + 0x18]
jmp 0x457279
test dl, 5
setne cl
bt edx, 8
setb al
test al, cl
je 0x456460
mov eax, dword [esp + 0x48]
mov ecx, ebp
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
inc dword [ebp + 0x48]
mov esi, dword [ebp + 0x48]
push esi
push dword [esp + 0x30]
push edi
push ebx
call fcn.00455ca5
add esp, 0x10
mov dword [esp + 0x10], eax
cmp eax, esi
je 0x456409
mov edx, esi
mov ecx, ebp
call fcn.0043a9b3
mov eax, dword [esp + 0x10]
mov esi, dword [ebx + 0x10]
mov ecx, dword [esp + 0x14]
push edi
push esi
push eax
push 0x26
pop edx
call fcn.00429abf
add esp, 0xc
push dword [esp + 0x10]
push esi
push dword [esp + 0x3c]
mov esi, dword [esp + 0x20]
mov ecx, esi
push 0x49
pop edx
call fcn.00429abf
mov edx, dword [esp + 0x1c]
add esp, 0xc
xor eax, eax
mov ecx, ebp
inc eax
push eax
call fcn.00438d85
mov edx, dword [esp + 0x38]
pop ecx
push dword [esp + 0x10]
mov ecx, ebp
push 0xffffffffffffffff
call fcn.00438cc7
pop ecx
pop ecx
jmp 0x4571bc
mov ecx, 0x102
mov eax, edx
and eax, ecx
cmp eax, ecx
jne 0x456630
mov edi, dword [esp + 0x48]
xor eax, eax
mov dword [esp + 0x38], 0x9f
mov ecx, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x3c], eax
test dl, 0x20
je 0x4564a1
mov eax, dword [edi + 0x30]
mov dword [esp + 0x20], 4
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
jmp 0x4564a5
mov dword [esp + 0x20], eax
test dl, 0x10
je 0x4564b4
mov eax, dword [edi + 0x30]
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + eax]
mov eax, dword [esp + 0x2c]
test eax, eax
mov edi, dword [esp + 0x3c]
cmove edi, ecx
cmove ecx, dword [esp + 0x3c]
mov dword [esp + 0x84], edi
mov dword [esp + 0x7c], ecx
test ecx, ecx
je 0x45653b
mov esi, dword [ecx]
lea eax, [esp + 0x50]
push eax
mov ecx, ebp
mov dword [esp + 0x14], 0x413f4042
mov edx, dword [esi + 0x10]
call fcn.00439c21
pop ecx
movzx ecx, byte [esi]
mov edi, eax
push edi
push dword [esp + 0x2c]
movzx edx, byte [esp + ecx - 0x38]
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
call fcn.00429abf
add esp, 0xc
xor eax, eax
inc eax
mov edx, edi
mov ecx, ebp
push eax
call fcn.00438d85
mov edx, dword [esp + 0x54]
pop ecx
mov ecx, ebp
call fcn.0043a9b3
mov edx, dword [esp + 0x7c]
mov ecx, ebx
call fcn.00455bca
mov edi, dword [esp + 0x84]
jmp 0x456557
push dword [esp + 0x28]
test eax, eax
push dword [esp + 0x38]
push 0x6d
pop edx
push 0x6a
pop ecx
cmovne edx, ecx
mov ecx, esi
call fcn.00429b21
pop ecx
pop ecx
test edi, edi
je 0x4565ab
mov esi, dword [edi]
mov ecx, ebp
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
push eax
mov edx, dword [esi + 0x10]
mov dword [esp + 0x74], eax
call fcn.00439cd5
mov al, byte [esi]
pop ecx
cmp al, 0x52
je 0x45658e
cmp al, 0x50
je 0x45658e
mov eax, dword [esp + 0x2c]
lea esi, [eax*2 + 0x50]
mov dword [esp + 0x38], esi
jmp 0x4565a2
mov eax, dword [esp + 0x2c]
xor ecx, ecx
inc ecx
xor eax, ecx
lea eax, [eax*2 + 0x51]
mov dword [esp + 0x38], eax
mov edx, edi
mov ecx, ebx
call fcn.00455bca
cmp dword [esp + 0x2c], 0
mov esi, dword [esp + 0x14]
sete al
add al, 7
cmp dword [esp + 0x38], 0x9f
mov ecx, dword [esi + 0x20]
mov byte [ebx + 0x2d], al
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x34], ecx
je 0x456363
inc dword [ebp + 0x48]
xor edi, edi
mov esi, dword [ebp + 0x48]
mov ecx, dword [esp + 0x14]
push edi
push esi
push eax
push 0x68
pop edx
call fcn.00429abf
mov edx, dword [esp + 0x40]
add esp, 0xc
mov ecx, ebp
push esi
push 0xffffffffffffffff
call fcn.00438cc7
mov edx, dword [esp + 0x40]
push esi
push dword [esp + 0x34]
mov esi, dword [esp + 0x24]
mov ecx, esi
push dword [esp + 0x80]
call fcn.00429abf
add esp, 0x14
or edx, 0xffffffff
mov ecx, esi
call fcn.0042a11a
mov byte [eax + 3], 0x53
jmp 0x456365
test edx, 0x200
je 0x456c0a
mov eax, dword [esp + 0x48]
xor ecx, ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x10], ecx
mov ebx, dword [eax + 0x1c]
movzx edi, word [eax + 0x18]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x30], edi
mov byte [esp + 0x1f], cl
mov byte [esp + 0x60], cl
mov ebp, dword [ebx + 8]
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x24]
mov byte [esp + 0x6f], cl
test byte [ebp + 0x22], 1
je 0x4566a4
mov esi, ebp
cmp byte [esi + 0x24], cl
mov esi, dword [esp + 0x14]
jle 0x4566a4
mov ebx, dword [esp + 0x28]
cmp word [ebx + 0x32], di
mov ebx, dword [esp + 0x38]
jbe 0x4566a4
mov byte [esp + 0x60], 1
mov dword [esp + 0x10], 1
mov ebp, dword [esp + 0x40]
movzx edi, di
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], edi
test dl, 0x20
je 0x4566d8
mov eax, dword [eax + 0x30]
mov esi, dword [esp + 0x14]
mov eax, dword [eax + edi*4]
mov dword [esp + 0x68], eax
lea eax, [edi + 1]
mov dword [esp + 0x20], eax
xor eax, eax
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
test dl, 0x10
je 0x45676c
mov edx, dword [esp + 0x20]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + edx*4]
xor edx, edx
inc edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x10], edx
mov edx, 0x100
test word [eax + 0x14], dx
je 0x456737
mov eax, dword [ebp + 0x48]
xor edx, edx
push ecx
inc eax
xor ecx, ecx
mov dword [ebp + 0x48], eax
inc edx
push eax
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x1c]
cmp byte [edi + eax], dl
sete cl
xor ecx, dword [esp + 0x34]
push ecx
push 0x17
pop edx
mov ecx, esi
call fcn.00429abf
mov eax, dword [esi + 0x20]
add esp, 0xc
mov dword [ebx + 0x28], eax
cmp dword [esp + 0x68], 0
jne 0x45676c
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 4]
movsx eax, word [eax + edi*2]
test eax, eax
js 0x45676c
imul ecx, eax, 0x18
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x60]
push 1
movzx edx, dl
mov eax, dword [eax + 4]
cmp byte [eax + ecx + 0x14], 0
pop eax
cmove edx, eax
mov dword [esp + 0x60], edx
lea eax, [esp + 0x5c]
mov edx, ebx
push eax
push dword [esp + 0x14]
mov ecx, ebp
push dword [esp + 0x34]
call fcn.00455e48
mov dword [esp + 0x58], eax
add esp, 0xc
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x456798
mov cl, byte [eax + edi]
mov byte [esp + 0x1f], cl
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x28]
movzx edx, word [eax + 0x32]
cmp word [esp + 0x30], dx
jae 0x4567c3
mov eax, dword [eax + 0x1c]
xor ecx, ecx
cmp byte [edi + eax], cl
mov eax, dword [esp + 0x2c]
sete cl
cmp eax, ecx
je 0x4567d4
jmp 0x4567c7
mov eax, dword [esp + 0x2c]
test eax, eax
mov eax, dword [esp + 0x30]
je 0x4567f8
cmp dx, ax
jne 0x4567f8
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x54]
mov al, byte [esp + 0x60]
mov dword [esp + 0x54], ecx
xor ecx, ecx
mov byte [esp + 0x6f], al
mov eax, dword [esp + 0x30]
mov dword [esp + 0x68], edx
mov byte [esp + 0x60], cl
jmp 0x4567fe
mov edx, dword [esp + 0x68]
xor ecx, ecx
test edx, edx
je 0x45680c
test byte [edx + 0x12], 0x28
mov dword [esp + 0x3c], ecx
je 0x456814
mov dword [esp + 0x3c], 1
cmp dword [esp + 0x54], 0
mov esi, dword [esp + 0x14]
je 0x456831
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x20], ecx
test byte [ebp + 0x12], 0x28
mov ebp, dword [esp + 0x40]
je 0x456839
mov dword [esp + 0x20], 1
test edx, edx
jne 0x456886
test ax, ax
jne 0x456886
mov dword [esp + 0x70], ecx
cmp byte [esp + 0x60], 0
mov edx, edi
mov dword [esp + 0x10], edx
je 0x456939
mov eax, dword [esp + 0x4c]
push ecx
add eax, edi
push eax
push ecx
push 0x1a
pop edx
mov ecx, esi
call fcn.00429abf
lea edx, [edi + 1]
xor eax, eax
xor edi, edi
mov dword [esp + 0x1c], edx
add esp, 0xc
mov dword [esp + 0x3c], edi
inc eax
mov dword [esp + 0x70], eax
jmp 0x45693b
xor eax, eax
mov dword [esp + 0x10], edi
inc eax
mov dword [esp + 0x70], eax
test edx, edx
je 0x456846
mov eax, dword [edx]
mov ecx, dword [eax + 0x10]
mov edx, ecx
mov eax, dword [esp + 0x4c]
add eax, edi
mov dword [esp + 0x30], ecx
push eax
mov ecx, ebp
mov dword [esp + 0x54], eax
call fcn.00439cd5
pop ecx
push dword [esp + 0x68]
mov edx, ebx
mov ecx, esi
call fcn.00456068
pop ecx
mov ecx, dword [esp + 0x30]
call fcn.00437f2f
xor edi, edi
test eax, eax
je 0x4568e6
push edi
push dword [esp + 0x68]
mov ecx, esi
push dword [esp + 0x58]
push 0x4c
pop edx
call fcn.00429abf
add esp, 0xc
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x45692e
mov eax, dword [esp + 0x18]
mov dl, byte [ecx + eax]
mov ecx, dword [esp + 0x30]
call fcn.00436e2d
mov ecx, dword [esp + 0x5c]
cmp al, 0x41
mov eax, dword [esp + 0x18]
jne 0x456912
mov byte [ecx + eax], 0x41
mov dl, 0x41
jmp 0x456915
mov dl, byte [ecx + eax]
mov ecx, dword [esp + 0x30]
call fcn.00437f81
test eax, eax
je 0x45692e
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x5c]
mov byte [ecx + eax], 0x41
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
jmp 0x45693b
xor edi, edi
mov ecx, dword [esp + 0x60]
push dword [esp + 0x5c]
movzx eax, cl
mov ecx, ebp
sub edx, eax
push edx
mov edx, dword [esp + 0x54]
call fcn.00455c39
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x7c]
push dword [esp + 0x58]
push dword [esp + 0x74]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x40]
push dword [esp + 0x6c]
movzx edx, byte [ecx + eax*2 + 0x4b21f0]
mov ecx, esi
call fcn.00429c89
mov eax, dword [esp + 0x6c]
add esp, 0x18
test eax, eax
je 0x456a30
mov eax, dword [eax]
xor ecx, ecx
inc ecx
push ecx
mov ecx, ebp
mov eax, dword [eax + 0x10]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x50]
mov edx, eax
mov dword [esp + 0x40], eax
call fcn.00438d85
mov edx, dword [esp + 0x34]
pop ecx
push dword [esp + 0x3c]
mov ecx, ebp
call fcn.00439cd5
pop ecx
push dword [esp + 0x54]
mov edx, ebx
mov ecx, esi
call fcn.00456068
pop ecx
mov ecx, dword [esp + 0x30]
call fcn.00437f2f
test eax, eax
je 0x4569f6
push edi
push dword [esp + 0x68]
mov ecx, esi
push dword [esp + 0x44]
push 0x4c
pop edx
call fcn.00429abf
add esp, 0xc
mov dl, byte [esp + 0x1f]
mov ecx, dword [esp + 0x30]
call fcn.00436e2d
cmp al, 0x41
je 0x456a53
mov dl, byte [esp + 0x1f]
mov ecx, dword [esp + 0x30]
call fcn.00437f81
test eax, eax
jne 0x456a53
mov edx, dword [esp + 0x3c]
lea eax, [esp + 0x1f]
push eax
xor eax, eax
mov ecx, ebp
inc eax
push eax
call fcn.00455c39
pop ecx
pop ecx
jmp 0x456a53
cmp byte [esp + 0x6f], 0
je 0x456a57
mov eax, dword [esp + 0x18]
mov ecx, esi
add eax, dword [esp + 0x4c]
push edi
push eax
push edi
push 0x1a
pop edx
call fcn.00429abf
add esp, 0xc
mov dword [esp + 0x20], edi
inc dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x78]
call fcn.00413e42
mov eax, dword [esi + 0x20]
mov dword [ebx + 0x34], eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x456a99
mov ecx, dword [esp + 0x20]
push eax
push dword [esp + 0x50]
mov eax, dword [esp + 0x34]
push dword [esp + 0x6c]
push dword [esp + 0x64]
movzx edx, byte [ecx + eax*2 + str.usrtC]
mov ecx, esi
call fcn.00429c89
add esp, 0x10
mov edx, dword [esp + 0x68]
mov ecx, ebx
call fcn.00455bca
mov edx, dword [esp + 0x54]
mov ecx, ebx
call fcn.00455bca
cmp dword [esp + 0x44], 0
jne 0x456bc6
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0xc]
test byte [ecx + 0x2a], 0x20
jne 0x456b2a
mov esi, dword [ebp + 0x48]
mov ecx, dword [esp + 0x14]
inc esi
push edi
push esi
push dword [esp + 0x60]
mov dword [ebp + 0x48], esi
push 0x71
pop edx
call fcn.00429abf
mov edx, dword [esp + 0x40]
add esp, 0xc
mov ecx, ebp
push esi
push 0xffffffffffffffff
call fcn.00438cc7
mov eax, dword [esp + 0x2c]
xor edx, edx
mov cl, byte [eax + 0x26]
mov eax, esi
test cl, cl
cmove eax, edx
push eax
xor eax, eax
test cl, cl
cmove eax, esi
mov esi, dword [esp + 0x20]
push eax
push dword [esp + 0x44]
mov ecx, esi
push 0x49
pop edx
push 0x43
pop eax
cmove edx, eax
call fcn.00429abf
add esp, 0x14
jmp 0x456bc6
mov edx, dword [esp + 0x58]
cmp dword [esp + 0x34], edx
je 0x456bca
call fcn.0043d90c
mov ecx, ebp
mov dword [esp + 0x44], eax
movzx edx, word [eax + 0x32]
call fcn.0043a9e7
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x44]
movzx ecx, word [eax + 0x32]
xor eax, eax
mov edx, ecx
cmp ax, cx
jae 0x456ba6
mov ebp, dword [esp + 0x44]
mov ebx, edi
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x28]
mov dx, word [eax + ebx*2]
call fcn.0043d924
movsx ecx, ax
mov eax, dword [esp + 0x20]
add eax, ebx
push eax
push ecx
push dword [esp + 0x60]
mov ecx, esi
push 0x2f
pop edx
call fcn.00429abf
movzx ecx, word [ebp + 0x32]
add esp, 0xc
inc ebx
cmp ebx, ecx
jl 0x456b67
mov ebx, dword [esp + 0x38]
mov edx, ecx
mov ebp, dword [esp + 0x40]
movzx eax, dx
mov ecx, esi
push eax
push dword [esp + 0x24]
push dword [esp + 0x88]
push dword [esp + 0x40]
push 0x45
pop edx
call fcn.00429c89
add esp, 0x10
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x48]
test dword [ecx + 0x24], 0x1000
je 0x456bdd
mov byte [ebx + 0x2d], 0x9f
jmp 0x456bea
cmp dword [esp + 0x2c], 0
sete al
add al, 7
mov byte [ebx + 0x2d], al
mov dword [ebx + 0x30], edx
xor edx, edx
mov al, byte [ecx + 0x26]
inc edx
and al, dl
mov byte [ebx + 0x2e], al
test byte [ecx + 0x24], 0xf
jne 0x456365
mov byte [ebx + 0x2f], dl
jmp 0x456365
test edx, 0x2000
je 0x4571b5
mov eax, dword [ebp + 0x44]
xor ecx, ecx
mov dword [esp + 0x7c], eax
inc eax
inc dword [ebp + 0x48]
mov edi, dword [ebp + 0x48]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], ecx
mov ecx, esi
mov dword [ebp + 0x44], eax
mov dword [esp + 0x84], edi
call fcn.00429cb7
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], edx
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x30]
mov eax, dword [ecx]
xor ecx, ecx
mov dword [esp + 0x4c], eax
inc ecx
mov eax, dword [eax + 0xc]
mov dword [ebx + 0x30], edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x58], eax
mov byte [ebx + 0x2d], 0x10
mov al, byte [edi + 0x29]
cmp al, cl
jbe 0x456d5f
mov ecx, dword [esp + 0x78]
movzx eax, al
sub eax, dword [esp + 0x20]
dec eax
imul edx, eax, 0x50
mov dword [esp + 0x44], eax
add edx, 0x58
call fcn.00413fe8
mov ecx, eax
mov dword [esp + 0x60], ecx
test ecx, ecx
jne 0x456cc1
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
jmp 0x457428
mov edx, dword [esp + 0x44]
lea edi, [ecx + 8]
mov esi, dword [esp + 0x10]
mov al, dl
inc al
movzx eax, al
mov dword [ecx + 4], eax
mov dword [ecx], eax
xor eax, eax
push 0x14
pop ecx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x24]
inc eax
mov ecx, dword [edi + 4]
add ecx, 8
mov dword [esp + 0x3c], ecx
cmp edx, eax
jl 0x456d2d
mov eax, dword [esp + 0x60]
lea ebp, [ebx + 0x7c]
add eax, 0x58
mov dword [esp + 0x44], eax
mov ebx, eax
movzx eax, byte [ebp]
mov edi, ebx
imul esi, eax, 0x50
lea ebp, [ebp + 0x50]
push 0x14
add ebx, 0x50
add esi, ecx
pop ecx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x3c]
sub edx, 1
jne 0x456d02
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
xor edx, edx
test byte [edi + 0x22], 8
jne 0x456dab
mov eax, dword [esp + 0x30]
test byte [eax + 0x2a], 0x20
jne 0x456d68
inc dword [ebp + 0x48]
mov ecx, esi
mov eax, dword [ebp + 0x48]
push edx
push eax
push edx
push 0x1a
pop edx
mov dword [esp + 0x68], eax
call fcn.00429abf
add esp, 0xc
jmp 0x456da1
mov eax, dword [edi + 4]
mov dword [esp + 0x60], eax
jmp 0x456d33
mov ecx, eax
call fcn.0043d90c
mov esi, eax
mov eax, dword [ebp + 0x44]
push edx
mov dword [esp + 0x60], eax
lea ecx, [eax + 1]
mov dword [ebp + 0x44], ecx
movzx ecx, word [esi + 0x32]
push ecx
mov ecx, dword [esp + 0x1c]
push eax
push 0x39
pop edx
call fcn.00429abf
add esp, 0xc
mov edx, esi
mov ecx, ebp
call fcn.0042a0fe
mov esi, dword [esp + 0x14]
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x64], eax
xor eax, eax
mov ecx, esi
push eax
push dword [esp + 0x88]
push eax
push 0x17
pop edx
call fcn.00429abf
mov dword [esp + 0x80], eax
add esp, 0xc
xor eax, eax
inc eax
cmp dword [edi + 0x154], eax
jle 0x456e7d
mov ebp, dword [esp + 0x24]
xor ebx, ebx
mov edx, dword [esp + 0x4c]
mov ecx, ebx
mov dword [esp + 0x44], ecx
mov edi, ebx
mov esi, ebx
mov eax, dword [ebp + 0x15c]
add eax, edi
cmp eax, edx
je 0x456e3d
mov edx, dword [eax]
test byte [edx + 4], 1
jne 0x456e39
test byte [eax + 0x14], 2
jne 0x456e39
mov ebp, 0x1fff
test word [eax + 0x12], bp
mov ebp, dword [esp + 0x24]
je 0x456e39
mov ecx, dword [esp + 0x78]
push ebx
push ebx
call fcn.00437686
mov ecx, dword [esp + 0x80]
mov edx, esi
push eax
call fcn.004372bc
mov ecx, dword [esp + 0x50]
add esp, 0xc
mov esi, eax
mov edx, dword [esp + 0x4c]
inc ecx
add edi, 0x30
mov dword [esp + 0x44], ecx
cmp ecx, dword [ebp + 0x154]
jl 0x456ded
mov ebx, dword [esp + 0x38]
mov edi, esi
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x14]
test edi, edi
je 0x456e81
xor eax, eax
mov ecx, ebp
push eax
push edi
push eax
push 0x48
pop edx
call fcn.00437206
mov edi, eax
add esp, 0xc
mov dword [esp + 0x28], edi
jmp 0x456e81
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x58]
xor eax, eax
mov dword [esp + 0x18], 0xf0
mov ecx, eax
mov dword [esp + 0x10], eax
cmp dword [edx + 0xc], eax
jle 0x457133
mov edx, dword [esp + 0x58]
imul ecx, ecx, 0x30
add ecx, dword [edx + 0x14]
mov edx, dword [esp + 0x34]
cmp dword [ecx + 8], edx
je 0x456ec0
mov edx, 0x400
test word [ecx + 0x12], dx
je 0x457119
mov ecx, dword [ecx]
mov dword [esp + 0x68], eax
test edi, edi
je 0x456ed7
xor edx, edx
inc edx
test byte [ecx + 4], dl
jne 0x456ed7
mov dword [edi + 0xc], ecx
mov ecx, edi
push dword [esp + 0x7c]
mov edx, dword [esp + 0x64]
push dword [esp + 0x1c]
push eax
push eax
push ecx
mov ecx, ebp
call fcn.0045c535
add esp, 0x14
mov dword [esp + 0x88], eax
test eax, eax
je 0x457117
movzx ecx, byte [ebx + 0x2c]
xor edi, edi
mov edx, dword [esp + 0x60]
push edi
push ecx
push dword [esp + 0x28]
lea ecx, [eax + 0x2e0]
push ecx
mov ecx, ebp
call fcn.00455920
mov eax, dword [esp + 0x34]
add esp, 0x10
test byte [eax + 0x22], 8
jne 0x45707b
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x10]
push 0xffffffffffffffff
mov eax, dword [eax + 0xc]
dec eax
cmp ecx, eax
pop eax
cmove ecx, eax
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x30]
test byte [ecx + 0x2a], 0x20
jne 0x456f85
push edi
push dword [esp + 0x68]
mov edx, ecx
mov ecx, ebp
push dword [esp + 0x3c]
push eax
call fcn.00438e72
push dword [esp + 0x4c]
mov edx, 0x83
mov ecx, esi
push eax
push edi
push dword [esp + 0x78]
call fcn.00429c89
add esp, 0x20
mov dword [esp + 0x68], eax
jmp 0x45707b
call fcn.0043d90c
mov ecx, ebp
mov dword [esp + 0x48], eax
movzx edx, word [eax + 0x32]
mov dword [esp + 0x70], edx
call fcn.0043a9e7
xor ecx, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
test edx, edx
je 0x456ffd
mov edi, eax
xor ebx, ebx
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
push ebx
push edi
mov eax, dword [eax + 4]
push dword [esp + 0x3c]
movsx eax, word [eax + ecx*2]
mov ecx, ebp
push eax
call fcn.00438e72
add esp, 0x10
cmp eax, edi
je 0x456fe3
push ebx
push edi
push eax
push 0x20
pop edx
mov ecx, esi
call fcn.00429abf
add esp, 0xc
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x70]
inc ecx
inc edi
mov dword [esp + 0x44], ecx
cmp ecx, edx
jl 0x456faf
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x457020
push edx
push eax
push 0
push dword [esp + 0x68]
mov ecx, esi
push 0x46
pop edx
call fcn.00429c89
add esp, 0x10
mov dword [esp + 0x68], eax
test edi, edi
js 0x457069
push dword [esp + 0x64]
mov ecx, esi
push dword [esp + 0x74]
push dword [esp + 0x48]
push 0x31
pop edx
call fcn.00429abf
add esp, 0xc
xor edi, edi
mov ecx, esi
push edi
push dword [esp + 0x68]
push dword [esp + 0x64]
push 0x6f
pop edx
call fcn.00429abf
add esp, 0xc
cmp dword [esp + 0x3c], edi
je 0x45706b
or edx, 0xffffffff
mov ecx, esi
call fcn.0042a11a
mov byte [eax + 3], 0x10
jmp 0x45706b
xor edi, edi
push dword [esp + 0x70]
mov edx, dword [esp + 0x44]
mov ecx, ebp
call fcn.0043aa12
pop ecx
push edi
push dword [esp + 0x54]
mov ecx, esi
push dword [esp + 0x8c]
push 0xf
pop edx
call fcn.00429abf
mov edx, dword [esp + 0x74]
add esp, 0xc
test edx, edx
je 0x4570b3
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
dec ecx
mov dword [eax + 0x58], ecx
mov ecx, esi
call fcn.0042a11a
mov ecx, dword [esi + 0x20]
mov dword [eax + 8], ecx
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x2c]
push 1
pop ecx
cmp byte [edx + 0x27], 0
cmovne eax, ecx
mov ecx, dword [edx + 0x320]
mov dword [esp + 0x2c], eax
test dword [ecx + 0x24], 0x200
je 0x45710c
cmp dword [esp + 0x10], 0
je 0x4570eb
mov eax, dword [esp + 0x54]
cmp dword [ecx + 0x1c], eax
jne 0x45710c
mov eax, dword [esp + 0x30]
test byte [eax + 0x2a], 0x20
je 0x457101
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
je 0x45710c
mov edi, dword [ecx + 0x1c]
or dword [esp + 0x18], 0x1000
mov ecx, edx
mov dword [esp + 0x54], edi
call fcn.0045cd36
xor eax, eax
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [edi + 0xc]
mov edi, dword [esp + 0x28]
jl 0x456e9e
mov ecx, dword [esp + 0x54]
mov dword [ebx + 0x38], ecx
test ecx, ecx
je 0x457145
mov ecx, dword [esp + 0x7c]
mov dword [ebx + 8], ecx
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x78]
test ecx, ecx
je 0x45715d
mov dword [ecx + 0xc], eax
mov edx, ecx
mov ecx, edi
call fcn.00437583
mov edx, dword [esp + 0x74]
mov ecx, esi
call fcn.0042a11a
mov ecx, dword [esi + 0x20]
mov dword [eax + 4], ecx
mov ecx, esi
mov edx, dword [ebx + 0xc]
call fcn.00429b34
mov edx, dword [esp + 0x50]
mov ecx, esi
call fcn.00429cf4
mov eax, dword [esp + 0x24]
xor ecx, ecx
inc ecx
cmp byte [eax + 0x29], cl
jbe 0x45719a
mov edx, dword [esp + 0x60]
mov ecx, edi
call fcn.00413e42
cmp dword [esp + 0x2c], 0
jne 0x45635f
mov edx, dword [esp + 0x4c]
mov ecx, ebx
call fcn.00455bca
jmp 0x45635f
test byte [esp + 0x74], 0x20
je 0x4571c5
mov byte [ebx + 0x2d], 0x9f
jmp 0x456365
mov ecx, dword [esp + 0x2c]
push dword [esp + 0x28]
mov al, byte [ecx + 0x4b41a4]
movzx edx, byte [ecx + 0x4b2358]
mov ecx, esi
mov byte [ebx + 0x2d], al
mov eax, dword [esp + 0x38]
push eax
mov dword [ebx + 0x30], eax
call fcn.00429b21
inc eax
mov dword [ebx + 0x34], eax
xor eax, eax
pop ecx
inc eax
pop ecx
mov byte [ebx + 0x2f], al
jmp 0x456365
mov eax, dword [edi]
mov dword [esp + 0x74], eax
cmp dword [ebx], edx
je 0x45720f
xor ecx, ecx
inc ecx
test byte [eax + 4], cl
je 0x457271
movzx ecx, word [edi + 0x14]
test ecx, 0x200
je 0x457235
push edx
push edx
push dword [ebx + 0x24]
mov ecx, esi
push 0x2e
pop edx
call fcn.00429abf
mov dword [esp + 0x5c], eax
add esp, 0xc
mov eax, dword [esp + 0x74]
push 0x10
push dword [esp + 0x84]
mov edx, eax
mov ecx, ebp
call fcn.0043a184
mov edx, dword [esp + 0x58]
pop ecx
pop ecx
test edx, edx
je 0x457268
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
dec ecx
mov dword [eax + 0x58], ecx
mov ecx, esi
call fcn.0042a11a
mov ecx, dword [esi + 0x20]
mov dword [eax + 8], ecx
push 4
pop eax
or word [edi + 0x14], ax
xor edx, edx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
dec eax
add edi, 0x30
mov dword [esp + 0x18], eax
test eax, eax
jg 0x456387
mov esi, dword [ecx + 0x154]
xor edi, edi
mov eax, dword [ecx + 0x15c]
mov dword [esp + 0x18], esi
jmp 0x45729f
mov esi, ecx
test esi, esi
jle 0x457397
lea edi, [eax + 0x12]
mov dword [esp + 0x50], edi
test byte [edi + 2], 6
jne 0x457381
movzx eax, word [edi]
test al, 0x82
push 0xb
setne cl
pop edx
bt ax, dx
setb al
test al, cl
je 0x457381
mov edx, dword [esp + 0x34]
cmp dword [edi - 0xa], edx
jne 0x457381
xor eax, eax
cmp dword [ebx], eax
jne 0x457381
mov ecx, dword [edi - 0x12]
push eax
push 0x83
push dword [esp + 0xa4]
mov dword [esp + 0x94], ecx
push dword [esp + 0xa4]
mov ecx, dword [esp + 0xa0]
push dword [edi - 6]
call fcn.00458e73
add esp, 0x14
mov dword [esp + 0x74], eax
test eax, eax
je 0x457381
test byte [eax + 0x14], 4
jne 0x457381
mov ecx, dword [esp + 0x78]
push 0x30
pop edx
call fcn.00413fe8
mov dword [esp + 0x7c], eax
test eax, eax
je 0x457381
mov esi, dword [esp + 0x74]
mov edi, eax
mov edx, dword [esp + 0x88]
push 0xc
pop ecx
mov esi, dword [esi]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [edx + 0xc]
mov edx, eax
push 0x10
push dword [esp + 0x84]
mov dword [eax + 0xc], ecx
mov ecx, ebp
call fcn.0043a184
mov edx, dword [esp + 0x84]
pop ecx
pop ecx
mov ecx, dword [esp + 0x78]
call fcn.00413e42
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x50]
dec esi
add edi, 0x30
mov dword [esp + 0x18], esi
mov dword [esp + 0x50], edi
test esi, esi
jg 0x4572ae
xor edi, edi
cmp dword [ebx], 0
je 0x457422
mov ecx, dword [esp + 0x14]
push edi
push dword [ebx]
mov eax, dword [ecx + 0x20]
mov dword [ebx + 0x1c], eax
xor eax, eax
inc eax
push eax
push 0x17
pop edx
call fcn.00429abf
add esp, 0xc
mov ecx, ebp
call fcn.00438f21
mov edi, dword [esp + 0x24]
xor edx, edx
mov esi, dword [edi + 0x15c]
cmp dword [edi + 0x154], edx
jle 0x457422
test byte [esi + 0x14], 6
jne 0x45740f
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [ebx + 0x48]
and eax, dword [ebx + 0x4c]
or ecx, eax
jne 0x45740f
mov edx, dword [esi]
mov ecx, ebp
push 0x10
push dword [esp + 0x84]
call fcn.0043a184
mov edx, dword [esp + 0x94]
pop ecx
pop ecx
push 4
pop eax
or word [esi + 0x14], ax
inc edx
add esi, 0x30
mov dword [esp + 0x8c], edx
cmp edx, dword [edi + 0x154]
jl 0x4573d7
mov eax, dword [ebx + 0x48]
mov edx, dword [ebx + 0x4c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret