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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x118]
cmp eax, dword [ecx + 8]
jbe 0x61a866
sub esp, 0x198
lea eax, [0x653060]
mov dword [esp], eax
call fcn.0040a500
mov eax, dword [esp + 4]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0x1a0]
mov dword [esp], ecx
mov edx, dword [esp + 0x1a4]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x2e
mov dword [esp + 0x10], 0x2e
mov dword [esp + 0x14], 0x2e
call fcn.0045d330
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
test eax, eax
jne 0x61a738
mov edx, dword [esp + 0xa8]
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], 0x2e
mov dword [esp + 0xcc], 0x2e
mov edx, dword [esp + 0xc4]
mov ebx, dword [edx]
cmp ebx, 0x2014b50
mov dword [esp + 0xc8], 0x2a
mov dword [esp + 0xcc], 0x2a
lea ebp, [edx + 4]
mov dword [esp + 0xc4], ebp
cmp ebx, 0x2014b50
jne 0x61a717
nop
movzx ebx, word [edx + 4]
mov dword [esp + 0xc8], 0x28
mov dword [esp + 0xcc], 0x28
add edx, 6
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0x19c]
mov word [edx + 0x12], bx
mov ebx, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xc4]
cmp ecx, 1
jbe 0x61a85b
lea esi, [ecx - 2]
movzx edi, word [ebp]
mov dword [esp + 0xc8], esi
add ebx, 0xfffffffe
mov dword [esp + 0xcc], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
add ebx, ebp
mov dword [esp + 0xc4], ebx
mov word [edx + 0x14], di
mov ebx, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xc4]
cmp ecx, 1
jbe 0x61a851
lea esi, [ecx - 2]
movzx edi, word [ebp]
mov dword [esp + 0xc8], esi
add ebx, 0xfffffffe
mov dword [esp + 0xcc], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
add ebx, ebp
mov dword [esp + 0xc4], ebx
mov word [edx + 0x16], di
mov ebx, dword [esp + 0xcc]
mov ebp, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc8]
cmp ecx, 1
jbe 0x61a847
lea esi, [ecx - 2]
movzx edi, word [ebp]
mov dword [esp + 0xc8], esi
add ebx, 0xfffffffe
mov dword [esp + 0xcc], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
add ebx, ebp
mov dword [esp + 0xc4], ebx
mov word [edx + 0x18], di
mov ebx, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xc4]
cmp ecx, 1
jbe 0x61a83d
lea esi, [ecx - 2]
movzx edi, word [ebp]
mov dword [esp + 0xc8], esi
add ebx, 0xfffffffe
mov dword [esp + 0xcc], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
add ebx, ebp
mov dword [esp + 0xc4], ebx
mov word [edx + 0x30], di
mov ebx, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xc4]
cmp ecx, 1
jbe 0x61a833
lea esi, [ecx - 2]
movzx edi, word [ebp]
mov dword [esp + 0xc8], esi
add ebx, 0xfffffffe
mov dword [esp + 0xcc], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
add ebx, ebp
mov dword [esp + 0xc4], ebx
mov word [edx + 0x32], di
mov ebx, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xc4]
cmp ecx, 3
jbe 0x61a829
lea esi, [ecx - 4]
mov edi, dword [ebp]
mov dword [esp + 0xc8], esi
mov eax, ebx
add ebx, 0xfffffffc
mov dword [esp + 0xcc], ebx
neg ebx
sar ebx, 0x1f
and ebx, 4
mov dword [esp + 0x8c], ebx
add ebx, ebp
mov dword [esp + 0xc4], ebx
mov dword [edx + 0x34], edi
nop
cmp esi, 3
jbe 0x61a81d
mov dword [esp + 0xa4], ebx
lea esi, [ecx - 8]
mov edi, dword [esp + 0x8c]
mov ebp, dword [ebp + edi]
mov dword [esp + 0xc8], esi
lea edi, [eax - 8]
mov dword [esp + 0xcc], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 4
add ebx, edi
mov dword [esp + 0xc4], ebx
mov dword [edx + 0x38], ebp
nop
cmp esi, 3
jbe 0x61a811
lea ebp, [ecx - 0xc]
mov esi, dword [esp + 0xa4]
mov esi, dword [esi + edi]
mov dword [esp + 0xc8], ebp
lea ebp, [eax - 0xc]
mov dword [esp + 0xcc], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 4
add ebx, ebp
mov dword [esp + 0xc4], ebx
mov dword [edx + 0x3c], esi
mov ebx, dword [edx + 0x38]
mov dword [edx + 0x40], ebx
mov dword [edx + 0x44], 0
mov dword [edx + 0x48], esi
mov dword [edx + 0x4c], 0
nop
mov ebx, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xcc]
cmp ecx, 1
jbe 0x61a807
lea esi, [ecx - 2]
movzx edi, word [ebx]
mov dword [esp + 0xc8], esi
mov eax, edi
lea edi, [ebp - 2]
mov dword [esp + 0xcc], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
lea edx, [ebx + edi]
mov dword [esp + 0xc4], edx
nop
cmp esi, 1
jbe 0x61a7fb
movzx ebx, word [ebx + edi]
mov dword [esp + 0x8c], ebx
lea esi, [ecx - 4]
mov dword [esp + 0xc8], esi
lea edi, [ebp - 4]
mov dword [esp + 0xcc], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
lea ebx, [edi + edx]
mov dword [esp + 0xc4], ebx
nop
cmp esi, 1
jbe 0x61a7ef
movzx edx, word [edi + edx]
lea esi, [ecx - 6]
mov dword [esp + 0xc8], esi
lea edi, [ebp - 6]
mov dword [esp + 0xcc], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
add ebx, edi
mov dword [esp + 0xc4], ebx
cmp esi, 4
jb 0x61a7e3
mov dword [esp + 0x88], edx
lea esi, [ebp - 0xa]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
lea edx, [esi + ebx]
mov dword [esp + 0xa4], edx
mov dword [esp + 0xc4], edx
lea edx, [ecx - 0xa]
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], edi
nop
cmp edx, 3
jbe 0x61a7d7
mov dword [esp + 0x54], ebp
lea edx, [ecx - 0xe]
mov ebx, dword [ebx + esi]
mov dword [esp + 0xc8], edx
lea esi, [ebp - 0xe]
mov dword [esp + 0xcc], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
mov edi, dword [esp + 0xa4]
lea ebp, [edi + esi]
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xc4], ebp
mov ebp, dword [esp + 0x19c]
mov dword [ebp + 0x5c], ebx
nop
cmp edx, 3
jbe 0x61a7cb
mov dword [esp + 0x84], eax
add ecx, 0xffffffee
mov edx, dword [edi + esi]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x54]
add ecx, 0xffffffee
mov dword [esp + 0xcc], ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
mov ebx, dword [esp + 0xa4]
add ecx, ebx
mov dword [esp + 0xc4], ecx
mov dword [ebp + 0x74], edx
mov dword [ebp + 0x78], 0
lea ecx, [0x659d80]
mov dword [esp], ecx
mov ecx, dword [esp + 0x8c]
lea edx, [eax + ecx]
mov dword [esp + 0x80], edx
mov ebx, dword [esp + 0x88]
lea esi, [edx + ebx]
mov dword [esp + 0x50], esi
mov dword [esp + 4], esi
mov dword [esp + 8], esi
call fcn.0043c2b0
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0x1a0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x1a4]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
call fcn.0045d330
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
test eax, eax
jne 0x61a702
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x50]
cmp ecx, edx
ja 0x61a7c6
mov dword [esp], 0
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.0043f830
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x19c]
mov dword [edi + 4], eax
mov eax, dword [0x8c1150]
test eax, eax
jne 0x61a6f6
mov dword [edi], ecx
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x50]
cmp ecx, edx
ja 0x61a7c1
mov eax, dword [esp + 0x84]
cmp eax, ecx
ja 0x61a7bc
mov ebx, dword [esp + 0x8c]
mov dword [edi + 0x54], ebx
mov ebx, edx
sub edx, eax
mov dword [edi + 0x58], edx
mov ebp, dword [0x8c1150]
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [esp + 0xa0]
add eax, edx
test ebp, ebp
jne 0x61a6e1
mov dword [edi + 0x50], eax
cmp ecx, ebx
ja 0x61a7b3
mov dword [esp], 0
mov eax, dword [esp + 0x88]
mov ebx, eax
neg eax
sar eax, 0x1f
and ecx, eax
lea eax, [ecx + edx]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebx
call fcn.0043f830
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x19c]
mov dword [edx + 0xc], eax
mov eax, dword [0x8c1150]
test eax, eax
jne 0x61a6d2
mov dword [edx + 8], ecx
mov eax, dword [edx + 4]
mov ecx, dword [edx]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0061c780
movzx eax, byte [esp + 8]
mov byte [esp + 0x35], al
movzx ecx, byte [esp + 9]
mov byte [esp + 0x36], cl
mov edx, dword [esp + 0x19c]
mov ebx, dword [edx + 0xc]
mov ebp, dword [edx + 8]
mov dword [esp], ebp
mov dword [esp + 4], ebx
call fcn.0061c780
movzx eax, byte [esp + 8]
movzx ecx, byte [esp + 9]
movzx edx, byte [esp + 0x35]
test dl, dl
je 0x61a6c2
test al, al
je 0x61a6c2
movzx ebx, byte [esp + 0x36]
test bl, bl
je 0x61a6aa
mov ecx, dword [esp + 0x19c]
movzx ebx, word [ecx + 0x16]
test bx, 0x800
sete bl
mov byte [ecx + 0x10], bl
mov ebx, dword [ecx + 0x78]
mov ebp, dword [ecx + 0x3c]
mov dword [esp + 0x7c], ebp
cmp ebp, 0xffffffff
mov eax, ebx
mov ebx, dword [ecx + 0x38]
cmp ebx, 0xffffffff
mov edx, ebx
mov ebx, dword [ecx + 0x74]
cmp ebx, 0xffffffff
lea edi, [esp + 0x134]
mov esi, eax
xor eax, eax
call fcn.00450fcb
mov ecx, dword [esp + 0x19c]
mov edi, ebx
mov ebx, dword [ecx + 0x54]
mov ebp, dword [ecx + 0x50]
mov ecx, dword [ecx + 0x58]
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0x7c]
cmp ecx, 0xffffffff
sete cl
cmp edx, 0xffffffff
sete bl
cmp edi, 0xffffffff
xchg ebp, ebx
sete bl
xchg ebp, ebx
test esi, esi
mov edx, ecx
sete cl
mov esi, ebx
lea ebx, [esp + 0x20]
mov dword [esp + 0x9c], ebx
and ecx, ebp
jmp 0x6195c7
mov edx, ebx
mov esi, ebp
mov ebx, edi
xchg esi, eax
mov byte [esp + 0x39], al
xchg esi, eax
mov byte [esp + 0x38], cl
mov ebp, dword [esp + 0xc0]
mov dword [esp + 0x8c], ebp
mov edi, ebx
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0xb8]
cmp ebx, 4
jl 0x61a311
mov dword [esp + 0x88], ebx
mov dword [esp + 0xa4], ebp
nop
nop
add ebx, 0xfffffffe
movzx ebp, word [ebp]
mov word [esp + 0x3a], bp
mov dword [esp + 0xbc], ebx
mov ebp, dword [esp + 0x8c]
add ebp, 0xfffffffe
mov dword [esp + 0xc0], ebp
mov ebp, dword [esp + 0xa4]
add ebp, 2
mov dword [esp + 0xb8], ebp
nop
nop
cmp ebx, 1
jbe 0x61a7a7
mov ebx, dword [esp + 0x88]
add ebx, 0xfffffffc
mov dword [esp + 0x88], ebx
mov ebp, dword [esp + 0xa4]
movzx ebp, word [ebp + 2]
mov dword [esp + 0x84], ebp
mov dword [esp + 0xbc], ebx
mov ebx, dword [esp + 0x8c]
add ebx, 0xfffffffc
mov dword [esp + 0x80], ebx
mov dword [esp + 0xc0], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
mov dword [esp + 0x78], ebx
mov ebp, dword [esp + 0xa4]
lea ebx, [ebp + ebx + 2]
mov dword [esp + 0x98], ebx
mov dword [esp + 0xb8], ebx
mov ebp, dword [esp + 0x88]
mov ebx, dword [esp + 0x84]
cmp ebp, ebx
jl 0x61a311
mov ebp, dword [esp + 0x80]
cmp ebx, ebp
ja 0x61a79e
mov ebp, dword [esp + 0x88]
sub ebp, ebx
mov dword [esp + 0xbc], ebp
mov ebp, dword [esp + 0x80]
sub ebp, ebx
mov dword [esp + 0xc0], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
mov ebx, dword [esp + 0x98]
add ebp, ebx
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xac], ebx
mov ebp, dword [esp + 0x84]
mov dword [esp + 0xb0], ebp
mov ebx, dword [esp + 0x80]
mov dword [esp + 0xb4], ebx
movzx ebx, word [esp + 0x3a]
cmp bx, 0xa
ja 0x61a04a
cmp bx, 1
jne 0x619ae8
test dl, dl
je 0x619adc
cmp ebp, 8
jl 0x619abb
nop
lea ebx, [ebp - 8]
mov ebp, dword [esp + 0x78]
mov edx, ebx
mov ebx, dword [esp + 0xa4]
movzx ebx, byte [ebx + ebp + 5]
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0xa4]
movzx ebx, byte [ebx + ebp + 4]
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0xa4]
movzx ebx, byte [ebx + ebp + 3]
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0xa4]
movzx ebx, byte [ebx + ebp + 2]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0xa4]
movzx ebx, byte [ebx + ebp + 8]
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0xa4]
movzx ebx, byte [ebx + ebp + 7]
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0xa4]
movzx ebx, byte [ebx + ebp + 6]
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0xa4]
movzx ebx, byte [ebx + ebp + 9]
mov dword [esp + 0xb0], edx
mov ebp, dword [esp + 0x8c]
add ebp, 0xfffffff4
mov dword [esp + 0xb4], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 8
mov edx, ebx
mov ebx, dword [esp + 0x98]
add ebx, ebp
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x70]
shl ebx, 8
mov ebp, dword [esp + 0x6c]
or ebp, ebx
mov ebx, dword [esp + 0x74]
shl ebx, 0x10
or ebp, ebx
mov ebx, dword [esp + 0x7c]
shl ebx, 0x18
or ebp, ebx
mov ebx, dword [esp + 0x19c]
mov dword [ebx + 0x48], ebp
mov ebp, dword [esp + 0x70]
shr ebp, 0x18
mov ebx, dword [esp + 0x74]
shr ebx, 0x10
or ebx, ebp
mov ebp, dword [esp + 0x7c]
shr ebp, 8
or ebp, ebx
mov ebx, dword [esp + 0x60]
or ebx, ebp
mov ebp, dword [esp + 0x64]
shl ebp, 8
or ebp, ebx
mov ebx, dword [esp + 0x68]
shl ebx, 0x10
or ebx, ebp
shl edx, 0x18
or edx, ebx
mov ebx, dword [esp + 0x19c]
mov dword [ebx + 0x4c], edx
xchg esi, eax
test al, al
xchg esi, eax
je 0x619ab4
mov ebp, dword [esp + 0xb0]
mov edx, ebx
mov ebx, dword [esp + 0xac]
mov esi, ebx
mov ebx, dword [esp + 0xb4]
cmp ebp, 8
jl 0x619a93
mov dword [esp + 0x8c], ebx
nop
add ebp, 0xfffffff8
movzx ebx, byte [esi]
mov dword [esp + 0x7c], ebx
movzx ebx, byte [esi + 3]
mov dword [esp + 0x74], ebx
movzx ebx, byte [esi + 2]
mov dword [esp + 0x70], ebx
movzx ebx, byte [esi + 1]
mov dword [esp + 0x6c], ebx
movzx ebx, byte [esi + 7]
mov dword [esp + 0x68], ebx
movzx ebx, byte [esi + 6]
mov dword [esp + 0x64], ebx
movzx ebx, byte [esi + 4]
mov dword [esp + 0x60], ebx
movzx ebx, byte [esi + 5]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0xb0], ebp
mov ebp, dword [esp + 0x8c]
add ebp, 0xfffffff8
mov dword [esp + 0xb4], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 8
add ebp, esi
mov dword [esp + 0xac], ebp
mov ebp, dword [esp + 0x6c]
mov esi, ebp
shl ebp, 8
mov ebx, dword [esp + 0x7c]
or ebx, ebp
mov ebp, dword [esp + 0x70]
shl ebp, 0x10
or ebp, ebx
mov ebx, dword [esp + 0x74]
shl ebx, 0x18
or ebp, ebx
mov dword [edx + 0x40], ebp
mov ebx, dword [esp + 0x70]
shr ebx, 0x10
shr esi, 0x18
or esi, ebx
mov ebx, dword [esp + 0x74]
shr ebx, 8
or ebx, esi
mov ebp, dword [esp + 0x60]
or ebp, ebx
mov ebx, dword [esp + 0x5c]
shl ebx, 8
or ebx, ebp
mov ebp, dword [esp + 0x64]
shl ebp, 0x10
or ebx, ebp
mov ebp, dword [esp + 0x68]
shl ebp, 0x18
or ebx, ebp
mov dword [edx + 0x44], ebx
test cl, cl
je 0x619a67
mov ebx, dword [esp + 0xb0]
mov ebp, dword [esp + 0xac]
mov ecx, ebp
mov ebp, dword [esp + 0xb4]
cmp ebx, 8
jl 0x619a72
nop
add ebx, 0xfffffff8
mov esi, ebp
movzx ebp, byte [ecx + 3]
mov dword [esp + 0x7c], ebp
movzx ebp, byte [ecx + 2]
mov dword [esp + 0x74], ebp
movzx ebp, byte [ecx + 1]
mov dword [esp + 0x70], ebp
movzx ebp, byte [ecx]
mov dword [esp + 0x6c], ebp
movzx ebp, byte [ecx + 7]
mov dword [esp + 0x68], ebp
movzx ebp, byte [ecx + 6]
mov dword [esp + 0x64], ebp
movzx ebp, byte [ecx + 4]
mov dword [esp + 0x60], ebp
movzx ebp, byte [ecx + 5]
mov dword [esp + 0xb0], ebx
lea ebx, [esi - 8]
mov dword [esp + 0xb4], ebx
neg ebx
sar ebx, 0x1f
and ebx, 8
add ebx, ecx
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x70]
mov ecx, ebx
shl ebx, 8
mov esi, ebp
mov ebp, dword [esp + 0x6c]
or ebx, ebp
mov ebp, dword [esp + 0x74]
shl ebp, 0x10
or ebp, ebx
mov ebx, dword [esp + 0x7c]
shl ebx, 0x18
or ebp, ebx
mov dword [edx + 0x74], ebp
mov ebx, dword [esp + 0x74]
shr ebx, 0x10
shr ecx, 0x18
or ecx, ebx
mov ebx, dword [esp + 0x7c]
shr ebx, 8
or ebx, ecx
mov ebp, dword [esp + 0x60]
or ebp, ebx
shl esi, 8
or esi, ebp
mov ebx, dword [esp + 0x64]
shl ebx, 0x10
or esi, ebx
mov ebx, dword [esp + 0x68]
shl ebx, 0x18
or esi, ebx
mov dword [edx + 0x78], esi
xor ecx, ecx
xor ebx, ebx
xor ebp, ebp
jmp 0x6195c1
mov eax, dword [0x8ad778]
mov ecx, dword [0x8ad77c]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], ecx
add esp, 0x198
ret
mov eax, dword [0x8ad77c]
mov ecx, dword [0x8ad778]
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], eax
add esp, 0x198
ret
mov edx, ebx
jmp 0x619981
mov eax, dword [0x8ad77c]
mov ecx, dword [0x8ad778]
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], eax
add esp, 0x198
ret
mov ebx, dword [esp + 0x19c]
jmp 0x619881
cmp bx, 0xa
jne 0x61a03a
cmp ebp, 4
jge 0x619b07
mov ebx, edx
mov ebp, esi
mov edx, dword [esp + 0x19c]
jmp 0x6195c1
mov byte [esp + 0x37], dl
nop
lea ebx, [ebp - 4]
mov dword [esp + 0xb0], ebx
mov ebx, dword [esp + 0x8c]
add ebx, 0xfffffff8
mov dword [esp + 0xb4], ebx
neg ebx
sar ebx, 0x1f
and ebx, 4
mov ebp, dword [esp + 0x98]
add ebx, ebp
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0xac]
mov dword [esp + 0xa4], ebx
mov ebp, dword [esp + 0xb0]
mov ebx, dword [esp + 0xb4]
cmp ebp, 4
jl 0x61a027
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x88], ebx
nop
nop
add ebp, 0xfffffffe
mov ebx, dword [esp + 0xa4]
movzx ebx, word [ebx]
mov word [esp + 0x3a], bx
cmp bx, 1
mov dword [esp + 0xb0], ebp
mov ebx, dword [esp + 0x88]
add ebx, 0xfffffffe
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0xa4]
add ebx, 2
mov dword [esp + 0xac], ebx
nop
nop
cmp ebp, 1
jbe 0x61a792
mov ebx, dword [esp + 0x8c]
add ebx, 0xfffffffc
mov dword [esp + 0x8c], ebx
mov ebp, dword [esp + 0xa4]
movzx ebp, word [ebp + 2]
mov dword [esp + 0x84], ebp
mov dword [esp + 0xb0], ebx
mov ebx, dword [esp + 0x88]
add ebx, 0xfffffffc
mov dword [esp + 0x88], ebx
mov dword [esp + 0xb4], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
mov dword [esp + 0x80], ebx
mov ebp, dword [esp + 0xa4]
lea ebx, [ebx + ebp + 2]
mov dword [esp + 0x98], ebx
mov dword [esp + 0xac], ebx
mov ebp, dword [esp + 0x8c]
mov ebx, dword [esp + 0x84]
cmp ebp, ebx
jl 0x61a014
nop
mov ebp, dword [esp + 0x88]
cmp ebx, ebp
ja 0x61a789
mov ebp, dword [esp + 0x8c]
sub ebp, ebx
mov dword [esp + 0xb0], ebp
mov ebp, dword [esp + 0x88]
sub ebp, ebx
mov dword [esp + 0xb4], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
mov ebx, dword [esp + 0x98]
add ebx, ebp
mov dword [esp + 0xac], ebx
movzx ebx, word [esp + 0x3a]
cmp bx, 1
jne 0x619b3f
mov ebx, dword [esp + 0x84]
cmp ebx, 0x18
jne 0x619b3f
nop
nop
cmp ebx, 7
jbe 0x61a77d
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0xa4]
movzx edx, byte [ecx + eax + 5]
movzx ebx, byte [ecx + eax + 4]
movzx ebp, byte [ecx + eax + 3]
movzx esi, byte [ecx + eax + 2]
mov edi, ebp
shl ebp, 8
or esi, ebp
mov ebp, ebx
shl ebx, 0x10
or esi, ebx
mov ebx, edx
shl edx, 0x18
or esi, edx
mov dword [esp + 0x7c], esi
movzx edx, byte [ecx + eax + 8]
mov dword [esp + 0x74], edx
movzx edx, byte [ecx + eax + 7]
mov dword [esp + 0x70], edx
movzx edx, byte [ecx + eax + 6]
movzx eax, byte [ecx + eax + 9]
mov dword [esp], esi
shr edi, 0x18
shr ebp, 0x10
or ebp, edi
shr ebx, 8
or ebx, ebp
or edx, ebx
mov ecx, dword [esp + 0x70]
shl ecx, 8
or ecx, edx
mov edx, dword [esp + 0x74]
shl edx, 0x10
or edx, ecx
shl eax, 0x18
or eax, edx
mov dword [esp + 0x74], eax
mov dword [esp + 4], eax
mov dword [esp + 8], 0x989680
mov dword [esp + 0xc], 0
call fcn.0044ba30
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x989680
mov dword [esp + 0xc], 0
call fcn.0044bbc0
mov eax, dword [esp + 0x10]
mov ecx, 0x64
mul ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x4c], eax
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x58], ebx
mov dword [esp], 0x641
mov dword [esp + 4], 1
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov ebp, dword [0x8a7c74]
mov dword [esp + 0x1c], ebp
call fcn.004a7fc0
lea edi, [esp + 0xe4]
mov esi, dword [esp + 0x9c]
call fcn.004514ae
mov eax, dword [esp + 0x58]
imul eax, eax, 0x64
mov ecx, dword [esp + 0x7c]
add eax, ecx
nop
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xe4]
mov ebx, ecx
shr ecx, 0x1f
shl ecx, 0x1f
test ecx, ecx
je 0x61a001
mov ecx, edx
shr edx, 0x1f
shl ebx, 1
or ebx, edx
mov ebp, ebx
shl ebx, 1
shl ecx, 1
shr ecx, 0x1f
or ecx, ebx
mov ebx, ecx
add ecx, 0xd7b17f80
shr ebp, 0x1f
add ebx, 0xd7b17f80
adc ebp, 0xd
mov ebx, dword [esp + 0x3c]
mov edx, ebx
add ebx, ecx
mov dword [esp + 0x7c], ebx
mov esi, ebx
add ebx, 0x886e0900
add edx, ecx
mov ecx, dword [esp + 0x40]
adc ebp, ecx
mov dword [esp + 0x58], ebp
add esi, 0x886e0900
adc ebp, 0xfffffff1
mov dword [esp + 0x48], ebp
test eax, eax
sete cl
mov edi, ebx
mov ebx, dword [esp + 0x4c]
test ebx, ebx
xchg ebp, ebx
setb bl
xchg ebp, ebx
test eax, eax
setl bl
and ebp, ecx
or ebx, ebp
test bl, bl
jne 0x619f4d
test eax, eax
setg bl
mov ebp, dword [esp + 0x4c]
cmp ebp, 0x3b9aca00
xchg ebp, ebx
setae bl
xchg ebp, ebx
and ecx, ebp
or ecx, ebx
test cl, cl
jne 0x619f4d
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x4c], ecx
mov ebx, edi
add edi, 0x7791f700
mov edx, edi
lea edi, [esp + 0x184]
mov ebp, eax
xor eax, eax
call fcn.00450fcb
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x184], ecx
sar ecx, 0x1f
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], edx
add ebx, 0x7791f700
adc ebp, 0xe
mov dword [esp + 0x190], ebp
mov ecx, dword [0x8a7c70]
mov dword [esp + 0x194], ecx
lea edi, [esp + 0x134]
lea esi, [esp + 0x184]
call fcn.004514ae
movzx ecx, byte [esp + 0x38]
movzx edx, byte [esp + 0x37]
movzx esi, byte [esp + 0x39]
mov edi, dword [esp + 0x9c]
jmp 0x619b3f
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044ba30
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x7c]
mov edx, eax
add eax, ecx
mov ebx, eax
add eax, 0x886e0900
mov dword [esp + 0x44], eax
mov eax, edx
mov esi, 0x3b9aca00
mov edi, eax
mul esi
mov esi, dword [esp + 0x4c]
sub esi, eax
mov ebp, dword [esp + 0x14]
add edi, ecx
mov ecx, dword [esp + 0x58]
adc ecx, ebp
mov edi, ebx
add ebx, 0x886e0900
mov ebx, ecx
adc ecx, 0xfffffff1
imul ebp, ebp, 0x3b9aca00
add edx, ebp
mov ebp, dword [esp + 0x4c]
sub ebp, eax
mov eax, dword [esp + 0x74]
sbb eax, edx
test esi, esi
setb dl
test eax, eax
setl al
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, edx
or ebp, eax
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x619ff9
add esi, 0x3b9aca00
add edi, 0x886e08ff
adc ebx, 0xfffffff1
mov eax, ebx
mov ecx, esi
jmp 0x619ec8
mov edi, dword [esp + 0x44]
mov ebx, ecx
jmp 0x619ff0
mov ecx, dword [esp + 0xec]
mov ebp, dword [esp + 0xf0]
jmp 0x619e4c
mov edx, dword [esp + 0x19c]
movzx ebx, byte [esp + 0x37]
mov ebp, esi
jmp 0x6195c1
mov edx, dword [esp + 0x19c]
movzx ebx, byte [esp + 0x37]
mov ebp, esi
jmp 0x6195c1
mov ebx, edx
mov ebp, esi
mov edx, dword [esp + 0x19c]
jmp 0x6195c1
cmp bx, 0xd
jne 0x61a191
cmp ebp, 8
jge 0x61a069
mov ebx, edx
mov ebp, esi
mov edx, dword [esp + 0x19c]
jmp 0x6195c1
nop
lea ebx, [ebp - 4]
mov dword [esp + 0x88], ebx
mov dword [esp + 0xb0], ebx
mov ebp, dword [esp + 0x8c]
add ebp, 0xfffffff8
mov dword [esp + 0xb4], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 4
mov ebx, dword [esp + 0x98]
add ebx, ebp
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xac], ebx
nop
nop
mov ebx, dword [esp + 0x88]
cmp ebx, 3
jbe 0x61a771
mov ebx, ecx
mov ecx, dword [esp + 0x98]
mov ecx, dword [ecx + ebp]
mov ebp, ecx
add ecx, 0x7791f700
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x84]
add ecx, 0xfffffff8
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x8c]
add ecx, 0xfffffff4
mov dword [esp + 0xb4], ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0xa4]
mov edi, dword [esp + 0x8c]
add ecx, edi
mov dword [esp + 0xac], ecx
lea edi, [esp + 0x170]
call fcn.00450fcb
mov dword [esp + 0x174], 0
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x178], ecx
add ebp, 0x7791f700
adc eax, 0xe
mov dword [esp + 0x17c], eax
mov ecx, dword [0x8a7c70]
mov dword [esp + 0x180], ecx
lea edi, [esp + 0x134]
lea esi, [esp + 0x170]
call fcn.004514ae
xor eax, eax
mov edi, dword [esp + 0x9c]
mov ecx, ebx
mov ebx, edx
movzx ebp, byte [esp + 0x39]
mov edx, dword [esp + 0x19c]
jmp 0x6195c1
cmp bx, 0x5455
jne 0x61a301
cmp ebp, 5
jge 0x61a2a0
mov ebx, 1
test bl, bl
je 0x61a1be
mov ebx, edx
mov ebp, esi
mov edx, dword [esp + 0x19c]
jmp 0x6195c1
nop
mov ebx, dword [esp + 0xac]
mov dword [esp + 0x90], ebx
mov ebp, dword [esp + 0xb0]
mov ebx, dword [esp + 0xb4]
cmp ebp, 3
jbe 0x61a765
mov ecx, dword [esp + 0x90]
mov ecx, dword [ecx]
mov dword [esp + 0x7c], ecx
add ecx, 0x7791f700
mov dword [esp + 0x74], ecx
lea ecx, [ebp - 4]
mov dword [esp + 0xb0], ecx
lea ecx, [ebx - 4]
mov dword [esp + 0xb4], ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
mov ebx, ecx
mov ecx, dword [esp + 0x90]
add ecx, ebx
mov dword [esp + 0xac], ecx
lea edi, [esp + 0x15c]
call fcn.00450fcb
mov dword [esp + 0x160], 0
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x164], ecx
mov ecx, dword [esp + 0x7c]
add ecx, 0x7791f700
adc eax, 0xe
mov dword [esp + 0x168], eax
mov ecx, dword [0x8a7c70]
mov dword [esp + 0x16c], ecx
lea edi, [esp + 0x134]
lea esi, [esp + 0x15c]
call fcn.004514ae
xor eax, eax
mov edi, dword [esp + 0x9c]
movzx ecx, byte [esp + 0x38]
mov ebx, edx
movzx ebp, byte [esp + 0x39]
mov edx, dword [esp + 0x19c]
jmp 0x6195c1
mov ebx, ebp
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0xa4]
movzx ebp, byte [edi + ebp + 2]
mov edi, ebp
lea ebp, [ebx - 1]
mov dword [esp + 0xb0], ebp
mov ebp, dword [esp + 0x8c]
add ebp, 0xfffffffb
mov dword [esp + 0xb4], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 1
mov ebx, ebp
mov ebp, dword [esp + 0x98]
add ebp, ebx
mov dword [esp + 0xac], ebp
xchg edi, eax
test al, 1
xchg edi, eax
sete bl
mov edi, dword [esp + 0x9c]
jmp 0x61a1aa
cmp bx, 0x5855
je 0x61a054
jmp 0x61a03a
mov eax, dword [esp + 0x19c]
movzx ecx, word [eax + 0x32]
movzx edx, word [eax + 0x30]
mov word [esp], cx
mov word [esp + 2], dx
call fcn.0061c4f0
lea esi, [esp + 4]
mov dword [esp + 0x9c], esi
lea edi, [esp + 0x120]
call fcn.004514ae
mov eax, dword [esp + 0x19c]
lea edi, [eax + 0x1c]
mov dword [esp + 0x94], edi
mov ecx, dword [0x8c1150]
test ecx, ecx
jne 0x61a66c
mov esi, dword [esp + 0x9c]
call fcn.004514ae
lea edi, [esp + 0x10c]
lea esi, [esp + 0x134]
call fcn.004514ae
mov ecx, dword [esp + 0x110]
mov edx, ecx
shr ecx, 0x1f
shl ecx, 0x1f
mov ebx, dword [esp + 0x10c]
test ecx, ecx
je 0x61a655
mov ecx, ebx
shr ebx, 0x1f
shl edx, 1
or edx, ebx
mov ebx, edx
shl edx, 1
mov ebp, ecx
shl ecx, 1
shr ecx, 0x1f
or ecx, edx
mov edx, ecx
add ecx, 0xd7b17f80
shr ebx, 0x1f
add edx, 0xd7b17f80
adc ebx, 0xd
test ecx, ecx
sete cl
test ebx, ebx
sete dl
and edx, ecx
test dl, dl
je 0x61a64e
test ebp, 0x3fffffff
sete cl
test cl, cl
je 0x61a43c
movzx eax, byte [esp + 0x39]
test al, al
je 0x61a416
mov eax, dword [0x8ad77c]
mov ecx, dword [0x8ad778]
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], eax
add esp, 0x198
ret
movzx eax, byte [esp + 0x38]
test al, al
jne 0x61a3f5
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0
add esp, 0x198
ret
lea edi, [esp + 0xd0]
lea esi, [esp + 0x134]
call fcn.004514ae
nop
nop
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xd4]
mov ebx, edx
shr edx, 0x1f
shl edx, 0x1f
test edx, edx
je 0x61a4b7
mov edx, ecx
shr ecx, 0x1f
shl ebx, 1
or ebx, ecx
mov ecx, ebx
shl ebx, 1
shl edx, 1
shr edx, 0x1f
or edx, ebx
mov ebx, edx
add edx, 0xd7b17f80
mov dword [esp + 0xd8], edx
shr ecx, 0x1f
add ebx, 0xd7b17f80
adc ecx, 0xd
mov dword [esp + 0xdc], ecx
and dword [esp + 0xd0], 0x3fffffff
mov dword [esp + 0xd4], 0
mov dword [esp + 0xe0], 0
mov ecx, dword [0x8c1150]
test ecx, ecx
jne 0x61a61e
mov edi, dword [esp + 0x94]
lea esi, [esp + 0xd0]
call fcn.004514ae
movzx ecx, word [eax + 0x30]
test cx, cx
je 0x61a60c
lea edi, [esp + 0xf8]
lea esi, [esp + 0x134]
call fcn.004514ae
mov edi, esp
lea esi, [esp + 0x120]
call fcn.004514ae
lea edi, [esp + 0x14]
lea esi, [esp + 0x134]
call fcn.004514ae
call fcn.004a66d0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0061c2c0
mov eax, dword [esp + 8]
test eax, eax
je 0x61a74d
nop
lea ecx, [0x8aac00]
cmp eax, ecx
jne 0x61a553
xor eax, eax
nop
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xfc]
mov ebx, edx
shr edx, 0x1f
shl edx, 0x1f
test edx, edx
je 0x61a5ba
mov edx, ecx
shr ecx, 0x1f
shl ebx, 1
or ebx, ecx
mov ecx, ebx
shl ebx, 1
shl edx, 1
shr edx, 0x1f
or edx, ebx
mov ebx, edx
add edx, 0xd7b17f80
mov dword [esp + 0x100], edx
shr ecx, 0x1f
add ebx, 0xd7b17f80
adc ecx, 0xd
mov dword [esp + 0x104], ecx
and dword [esp + 0xf8], 0x3fffffff
mov dword [esp + 0xfc], 0
mov dword [esp + 0x108], eax
mov eax, dword [0x8c1150]
test eax, eax
jne 0x61a5e3
mov edi, dword [esp + 0x94]
lea esi, [esp + 0xf8]
call fcn.004514ae
jmp 0x61a3ec
lea eax, [0x69ea20]
mov dword [esp], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 4], eax
lea eax, [esp + 0xf8]
mov dword [esp + 8], eax
call fcn.004102a0
jmp 0x61a3ec
movzx eax, word [eax + 0x32]
test ax, ax
jne 0x61a4f0
jmp 0x61a3ec
lea eax, [0x69ea20]
mov dword [esp], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 4], eax
lea ecx, [esp + 0xd0]
mov dword [esp + 8], ecx
call fcn.004102a0
mov eax, dword [esp + 0x19c]
jmp 0x61a4e3
xor ecx, ecx
jmp 0x61a3e8
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x118]
mov ebp, ebx
mov ebx, edx
jmp 0x61a3cb
mov eax, edi
lea edi, [esp + 0x148]
mov esi, dword [esp + 0x9c]
call fcn.004514ae
lea ecx, [0x69ea20]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea ecx, [esp + 0x148]
mov dword [esp + 8], ecx
call fcn.004102a0
mov eax, dword [esp + 0x19c]
jmp 0x61a370
test cl, cl
jne 0x619525
mov ecx, dword [esp + 0x19c]
mov byte [ecx + 0x10], 0
jmp 0x61953b
mov ecx, dword [esp + 0x19c]
mov byte [ecx + 0x10], 1
jmp 0x61953b
lea edi, [edx + 8]
mov eax, ecx
call fcn.00450d20
jmp 0x6194bd
lea ebp, [edi + 0x50]
mov esi, edi
mov edi, ebp
call fcn.00450d20
cmp ecx, ebx
mov edi, esi
jmp 0x619469
mov eax, ecx
call fcn.00450d20
jmp 0x619413
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], ecx
add esp, 0x198
ret
mov eax, dword [0x8ad77c]
mov ecx, dword [0x8ad778]
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], eax
add esp, 0x198
ret
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], ecx
add esp, 0x198
ret
lea eax, [0x659b80]
mov dword [esp], eax
lea eax, [0x7004b0]
mov dword [esp + 4], eax
call fcn.0042a9b0
mov eax, 3
mov ecx, ebp
call fcn.00450da0
mov eax, 3
mov ecx, ebx
call fcn.00450da0
mov eax, 7
mov ecx, ebx
call fcn.00450da0
mov ecx, ebx
mov edx, ebp
call fcn.00450de0
mov eax, 1
mov ecx, ebp
call fcn.00450da0
mov ecx, ebx
mov edx, ebp
call fcn.00450de0
mov eax, 1
mov ecx, ebx
call fcn.00450da0
mov eax, ecx
mov ecx, ebx
call fcn.00450e00
call fcn.00450e00
call fcn.00450de0
call fcn.00450de0
mov eax, 3
mov ecx, edx
call fcn.00450da0
mov eax, 3
mov ecx, edx
call fcn.00450da0
mov eax, 4
mov ecx, esi
call fcn.00450e00
mov eax, 1
mov ecx, esi
call fcn.00450da0
mov eax, 1
mov ecx, esi
call fcn.00450da0
mov eax, 1
call fcn.00450da0
mov eax, 3
mov ecx, esi
call fcn.00450da0
mov eax, 3
mov ecx, esi
call fcn.00450da0
mov eax, 3
call fcn.00450da0
mov eax, 1
call fcn.00450da0
mov eax, 1
call fcn.00450da0
mov eax, 1
call fcn.00450da0
mov eax, 1
call fcn.00450da0
mov eax, 1
call fcn.00450da0
nop
call fcn.0044f4e0
jmp fcn.00618e20