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

Disassembly:
sub esp, 0x5c
push ebp
mov ebp, dword [esp + 0x64]
xor eax, eax
push esi
mov byte [esp + 0xb], 0
mov byte [esp + 0x48], 0
mov esi, dword [ebp + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x4c], eax
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0x28], esi
mov dword [esp + 0x50], ecx
cmp dword [esi + 0x70], ecx
jg 0x451a28
push eax
push eax
push eax
push 0xf
push esi
call fcn.0045f9a0
add esp, 0x14
mov dword [esp + 0x50], eax
jmp 0x451a5b
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xf
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push ebx
mov ebx, dword [esp + 0x7c]
xorps xmm0, xmm0
push edi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x1c], 0
movlpd qword [esp + 0x64], xmm0
mov eax, dword [edi]
mov edi, dword [edi + 0x18]
mov ecx, dword [eax + 4]
movzx eax, byte [ebx + 0x3c]
mov ebx, dword [ebx + 0x50]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x2c], ebx
lea eax, [eax + eax*8]
lea edx, [ecx + eax*8]
mov eax, dword [edx + 0x18]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x18], edx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*2]
shl eax, 4
add eax, edi
mov dword [esp + 0x4c], eax
cmp edi, eax
jae 0x451d9f
mov eax, dword [esp + 0x68]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x28], eax
nop dword [eax]
test byte [edi + 0xa], 2
mov ebx, dword [edi]
jne 0x451c42
mov eax, dword [esp + 0x80]
movzx eax, byte [eax + 0x3c]
push eax
push ecx
push ebx
call fcn.0048ea80
add esp, 0xc
test eax, eax
je 0x451c42
mov ecx, dword [ebp]
mov dword [esp + 0x48], ecx
test ebx, ebx
je 0x451b1e
push 0
push 0
push ebx
push ecx
call fcn.00457690
mov ecx, dword [ebp]
add esp, 0x10
mov ebx, eax
mov dword [esp + 0x48], ecx
jmp 0x451b20
xor ebx, ebx
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x451b31
mov dword [esp + 0x24], ebx
jmp 0x451c42
test ebx, ebx
je 0x451c42
mov eax, dword [edx + 4]
or eax, dword [ebx + 4]
and eax, 0x20000003
cmp eax, 0x20000000
jne 0x451b96
cmp byte [ebp + 0xdc], 2
jae 0x451b96
push edx
push ebp
call fcn.0048dcf0
push ebx
push ebp
call fcn.0048dcf0
push 0
lea eax, [esp + 0x78]
mov dword [esp + 0x78], 0x52a6d8
push eax
push 0x9b
push dword [esp + 0x64]
mov dword [esp + 0x88], 1
call fcn.0048a5a0
add esp, 0x20
mov dword [esp + 0x24], eax
jmp 0x451c42
push 0
push 0x34
push ecx
call fcn.00487b10
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x451c1f
push 0x34
push 0
push ebp
call fcn.004e7970
mov edx, dword [esp + 0x30]
or eax, 0xffffffff
mov word [ebp + 0x22], ax
add esp, 0xc
mov byte [ebp], 0x2c
mov dword [ebp + 0x10], ebx
mov ecx, dword [ebx + 4]
and ecx, 0x400208
or ecx, dword [ebp + 4]
mov dword [ebp + 4], ecx
mov eax, dword [ebx + 0x18]
inc eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 0xc], edx
mov eax, dword [edx + 4]
and eax, 0x400208
or eax, ecx
mov dword [ebp + 4], eax
mov eax, dword [edx + 0x18]
mov edx, dword [ebp + 0x18]
cmp eax, edx
jl 0x451bfe
lea edx, [eax + 1]
mov dword [ebp + 0x18], edx
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
cmp edx, eax
jle 0x451c3e
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ecx
call fcn.00489e60
add esp, 0xc
jmp 0x451c3e
mov eax, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x74]
push dword [eax]
call fcn.0048dd70
mov eax, dword [esp + 0x78]
push ebx
push dword [eax]
call fcn.0048dd70
add esp, 0x10
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x18]
mov ebx, dword [ebp + 0x34]
cmp dword [edi + 0x14], ebx
jne 0x451d7c
test byte [edi + 0xc], 0x82
je 0x451d7c
mov cl, byte [ebp + 0x2c]
test cl, 0x58
je 0x451c89
mov eax, dword [edi]
mov edx, dword [eax + 4]
test dl, 3
je 0x451d7c
cmp dword [eax + 0x24], ebx
jne 0x451d7c
test cl, 0x18
je 0x451c89
test dl, 2
jne 0x451d7c
mov ecx, dword [esp + 0x78]
mov eax, dword [edi + 0x24]
and ecx, dword [edi + 0x20]
and eax, dword [esp + 0x7c]
or ecx, eax
jne 0x451d7c
mov ecx, dword [edi + 0x18]
test ecx, ecx
js 0x451d7c
mov eax, dword [ebp + 0x18]
add ecx, ecx
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 8]
mov byte [esp + 0x44], al
push dword [esp + 0x44]
push dword [edi]
call fcn.00497c50
add esp, 8
test eax, eax
je 0x451d7c
mov ecx, dword [edi + 0x18]
xor ebx, ebx
cmp ecx, 0x40
jl 0x451ce1
mov ebp, 0x80000000
jmp 0x451cf6
mov eax, ecx
xor ebp, ebp
bts ebx, eax
cmp eax, 0x20
cmovae ebp, ebx
xor ebx, ebp
cmp eax, 0x40
cmovae ebp, ebx
cmp byte [esp + 0x13], 0
jne 0x451d22
mov edx, dword [esp + 0x40]
add ecx, ecx
mov eax, dword [edx + 4]
push dword [eax + ecx*8]
push dword [edx]
push str.automatic_index_on__s__s_
push 0x11c
call fcn.00444580
add esp, 0x10
mov byte [esp + 0x13], 1
mov ecx, ebx
mov eax, ebp
and ecx, dword [esp + 0x28]
and eax, dword [esp + 0x14]
or ecx, eax
jne 0x451d7c
mov eax, dword [esp + 0x1c]
inc eax
push eax
push dword [esp + 0x30]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x78]
push dword [eax]
call fcn.004d8580
add esp, 0xc
test eax, eax
jne 0x452706
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
or dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x14]
mov eax, dword [eax + 0x38]
or ebx, ebp
mov dword [esp + 0x14], ebx
mov dword [eax + ecx*4], edi
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1c], eax
jmp 0x451d80
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x70]
add edi, 0x30
mov ecx, dword [esp + 0x3c]
cmp edi, dword [esp + 0x4c]
jb 0x451ad0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
jmp 0x451da7
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x1c]
movzx eax, di
mov word [esi + 0x30], ax
mov word [esi + 0x18], ax
mov eax, esi
mov dword [eax + 0x2c], 0x4241
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x2b], 2
jne 0x451ddf
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x14], 0xffffffff
jmp 0x451df7
not ebx
not ecx
and ecx, dword [edx + 0x40]
or ebx, 0x80000000
and ebx, dword [edx + 0x44]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], ebx
movzx ebx, word [eax + 0x22]
mov ecx, 0x3f
mov esi, dword [esp + 0x30]
mov dword [esp + 0x48], ebx
movzx eax, bx
cmp cx, bx
jge 0x451e16
mov dword [esp + 0x3c], ecx
jmp 0x451e24
movsx ecx, bx
mov dword [esp + 0x3c], ecx
xor ecx, ecx
cmp cx, ax
jge 0x451e6a
mov esi, dword [esp + 0x3c]
xor edi, edi
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
xor edx, edx
xor ecx, ecx
mov eax, edi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, ebx
and ecx, ebp
or edx, ecx
je 0x451e55
inc dword [esp + 0x1c]
inc edi
cmp edi, esi
jl 0x451e32
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x70]
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x44], 0
jg 0x451e88
jl 0x451e7c
cmp dword [eax + 0x40], 0
jae 0x451e88
movsx eax, bx
add edi, 0xffffffc1
add edi, eax
mov dword [esp + 0x1c], edi
mov ecx, dword [ebp]
movzx eax, di
inc eax
movzx eax, ax
movsx edi, ax
mov dword [esp + 0x38], eax
lea edx, [edi*4 + 7]
and edx, 0xfffffff8
lea eax, [edi*4 + 9]
add eax, edi
mov dword [esp + 0x44], edx
and eax, 0xfffffff8
add edx, 0x48
add eax, edx
mov dword [esp + 0x48], eax
cdq
push edx
push eax
test ecx, ecx
je 0x451ed4
push ecx
call fcn.00487b10
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x20], ebx
jmp 0x451ee2
call fcn.0049b7f0
add esp, 8
mov dword [esp + 0x20], eax
mov ebx, eax
test ebx, ebx
je 0x45270a
push dword [esp + 0x48]
push 0
push ebx
call fcn.004e7970
mov ecx, dword [esp + 0x28]
lea eax, [ebx + 0x48]
mov dword [ebx + 0x20], eax
add esp, 0xc
add eax, dword [esp + 0x44]
xorps xmm0, xmm0
mov dword [ebx + 8], eax
movlpd qword [esp + 0x64], xmm0
lea eax, [eax + edi*2]
add eax, 2
mov dword [ebx + 4], eax
lea eax, [eax + edi*2]
mov dword [ebx + 0x1c], eax
mov eax, dword [esp + 0x38]
mov word [ebx + 0x34], ax
movzx eax, cx
mov word [ebx + 0x32], ax
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x20], ebx
mov eax, dword [esp + 0x40]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x74]
mov dword [ebx], str.auto_index
xor ebx, ebx
mov edi, dword [eax + 0x18]
cmp edi, dword [esp + 0x4c]
jae 0x4520cf
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x38], esi
mov dword [esp + 0x44], eax
nop dword [eax + eax]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x34]
cmp dword [edi + 0x14], eax
jne 0x4520ba
test byte [edi + 0xc], 0x82
je 0x4520ba
mov cl, byte [edx + 0x2c]
test cl, 0x58
je 0x451fca
mov eax, dword [edi]
mov edx, dword [eax + 4]
test dl, 3
je 0x4520ba
mov ebp, dword [esp + 0x18]
mov esi, dword [ebp + 0x34]
mov ebp, dword [esp + 0x70]
cmp dword [eax + 0x24], esi
jne 0x4520ba
test cl, 0x18
je 0x451fc2
test dl, 2
jne 0x4520ba
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x78]
mov eax, dword [edi + 0x24]
and ecx, dword [edi + 0x20]
and eax, dword [esp + 0x7c]
or ecx, eax
jne 0x4520ba
mov ecx, dword [edi + 0x18]
test ecx, ecx
js 0x4520ba
mov eax, dword [edx + 0x18]
add ecx, ecx
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 8]
mov byte [esp + 0x5c], al
push dword [esp + 0x5c]
push dword [edi]
call fcn.00497c50
add esp, 8
test eax, eax
je 0x4520ba
mov eax, dword [edi + 0x18]
xor edx, edx
movzx ecx, ax
mov dword [esp + 0x60], ecx
cmp eax, 0x40
jl 0x45202d
mov eax, 0x80000000
mov dword [esp + 0x48], eax
jmp 0x452046
bts edx, eax
xor ecx, ecx
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
mov dword [esp + 0x48], ecx
mov eax, ecx
mov ecx, edx
and eax, esi
and ecx, dword [esp + 0x44]
or ecx, eax
jne 0x4520ba
or esi, dword [esp + 0x48]
mov ecx, dword [edi]
or dword [esp + 0x44], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x20]
push ecx
push ebp
mov dword [esp + 0x6c], ecx
mov eax, dword [esi + 4]
mov word [eax + ebx*2], dx
call fcn.0048daf0
add esp, 8
test eax, eax
je 0x452085
mov ecx, dword [eax]
jmp 0x45208a
mov ecx, 0x512fbc
mov eax, dword [esi + 0x20]
mov dword [eax + ebx*4], ecx
inc ebx
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4520ba
push eax
call fcn.0048a4d0
mov ecx, dword [esp + 0x54]
add esp, 4
cmp al, 0x42
movzx ecx, cl
mov eax, 1
cmovne ecx, eax
mov dword [esp + 0x50], ecx
mov esi, dword [esp + 0x38]
add edi, 0x30
cmp edi, dword [esp + 0x4c]
jb 0x451f70
mov esi, dword [esp + 0x30]
xor edi, edi
cmp dword [esp + 0x3c], edi
jle 0x452122
mov esi, dword [esp + 0x20]
mov ebp, dword [esp + 0x3c]
nop
xor edx, edx
xor ecx, ecx
mov eax, edi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x28]
and ecx, dword [esp + 0x14]
or edx, ecx
je 0x452115
mov eax, dword [esi + 4]
mov word [eax + ebx*2], di
mov eax, dword [esi + 0x20]
mov dword [eax + ebx*4], 0x512fbc
inc ebx
inc edi
cmp edi, ebp
jl 0x4520e0
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x44], 0
jg 0x45216d
jl 0x452134
cmp dword [eax + 0x40], 0
jae 0x45216d
mov edi, dword [esp + 0x40]
mov eax, 0x3f
mov edx, dword [esp + 0x20]
cmp ax, word [edi + 0x22]
jge 0x452171
mov ecx, eax
nop dword [eax]
mov eax, dword [edx + 4]
mov word [eax + ebx*2], cx
inc ecx
mov eax, dword [edx + 0x20]
mov dword [eax + ebx*4], 0x512fbc
inc ebx
movsx eax, word [edi + 0x22]
cmp ecx, eax
jl 0x452150
jmp 0x452171
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 4]
or ecx, 0xffffffff
mov word [eax + ebx*2], cx
mov eax, dword [edx + 0x20]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x1c]
inc edx
mov dword [eax + ebx*4], 0x512fbc
mov eax, dword [ebp + 0x28]
mov dword [ecx + 8], eax
inc dword [ebp + 0x28]
mov edi, dword [ecx + 8]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4521b6
push 0
push edx
push edi
push 0x74
push esi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4521e5
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x30]
mov dword [eax + ecx*4], 0x74
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x20]
mov edi, dword [ebp + 8]
push ebp
call fcn.0049a220
mov edx, eax
add esp, 8
test edx, edx
je 0x452231
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x45221f
cmp dword [eax + 0x210], 0
jne 0x452231
add dword [edx], 0xffffffff
jne 0x452231
push edx
push dword [edx + 0xc]
call fcn.00487c30
add esp, 8
jmp 0x452231
mov eax, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf8
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [ebp]
test dword [eax + 0x50], 0x80000
jne 0x4522b0
cmp byte [esp + 0x50], 0
je 0x4522b0
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x80]
push edi
push dword [eax]
push ebp
call fcn.004c4620
inc dword [ebp + 0x2c]
add esp, 0xc
mov edx, dword [ebp + 0x2c]
mov dword [edi + 0x34], edx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x452281
push 0
push edx
push 0x2710
push 0x4d
push esi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4522b0
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x4d
mov dword [eax + ecx*4 + 4], 0x2710
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x18]
test byte [edi + 0x30], 0x20
je 0x4523ad
mov ecx, dword [esi + 0x6c]
mov edx, dword [edi + 0x24]
mov dword [esp + 0x74], edx
mov dword [esp + 0x54], ecx
cmp dword [esi + 0x70], ecx
jg 0x4522ef
push 0
push 0
push 0
push 0x47
push esi
call fcn.0045f9a0
mov edx, dword [esp + 0x88]
add esp, 0x14
mov dword [esp + 0x54], eax
jmp 0x452326
mov ebp, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
mov edi, dword [edi + 0x20]
cmp dword [esi + 0x70], ecx
jg 0x452349
push edi
push 0
push edx
push 0xb
push esi
call fcn.0045f9a0
mov edx, dword [esp + 0x88]
add esp, 0x14
jmp 0x452378
mov ebp, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x6c]
cmp dword [esi + 0x70], edi
jg 0x452394
push 0
push 0
push edx
push 0xc
push esi
call fcn.0045f9a0
add esp, 0x14
mov edi, eax
jmp 0x452406
mov ebp, dword [esp + 0x70]
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xc
jmp 0x4523ea
mov eax, dword [esp + 0x80]
mov edi, dword [esi + 0x6c]
mov edx, dword [eax + 4]
cmp dword [esi + 0x70], edi
jg 0x4523d3
push 0
push 0
push edx
push 0x24
push esi
call fcn.0045f9a0
add esp, 0x14
mov edi, eax
jmp 0x452406
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x30]
mov dword [eax + ecx*4], 0x24
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esp + 0x24]
test eax, eax
je 0x452430
dec dword [ebp + 0x38]
mov ecx, dword [ebp + 0x38]
push 0x10
push ecx
push eax
push ebp
mov dword [esp + 0x44], ecx
call fcn.0048e050
mov eax, dword [esp + 0x3c]
add esp, 0x10
or dword [eax + 0x2c], 0x20000
mov al, byte [ebp + 0x13]
test al, al
jne 0x45243f
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
jmp 0x45244e
dec al
mov byte [ebp + 0x13], al
movzx eax, al
mov eax, dword [ebp + eax*4 + 0xa4]
push 0
push 0
push 0
push 0
push eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x94]
push dword [eax + 4]
push dword [esp + 0x38]
push ebp
call fcn.00495d70
mov edx, dword [esp + 0xa0]
add esp, 0x20
mov dword [esp + 0x50], eax
mov edx, dword [edx + 0x34]
test edx, edx
je 0x4524e6
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi + 0x6c]
movzx eax, word [eax + 0x18]
mov dword [esp + 0x64], eax
cmp dword [esi + 0x70], ecx
jg 0x4524b3
push eax
push dword [esp + 0x54]
push 0
push edx
push 0xb7
push esi
call fcn.00445f60
add esp, 0x18
jmp 0x4524e6
mov ebp, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x50]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x64]
mov dword [eax + ecx*4], 0xfdb7
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], edx
mov edx, dword [esp + 0x80]
mov ecx, dword [esi + 0x6c]
mov eax, dword [edx + 8]
mov dword [esp + 0x64], eax
cmp dword [esi + 0x70], ecx
jg 0x452514
mov edx, dword [esp + 0x74]
push 0
push edx
push eax
push 0x8a
push esi
call fcn.0045f9a0
add esp, 0x14
jmp 0x452547
mov edx, dword [esp + 0x64]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x74]
mov dword [eax + ecx*4], 0x8a
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
test ecx, ecx
jle 0x452561
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
mov edx, 0x10
mov word [eax + ecx*4 - 0x12], dx
mov ecx, dword [esi + 0x6c]
cmp dword [esp + 0x24], 0
je 0x452591
mov edx, dword [esi + 0xc]
not dword [esp + 0x34]
mov eax, dword [edx + 0x3c]
add eax, dword [edx + 0x38]
jns 0x452587
push dword [esp + 0x34]
push esi
push edx
call fcn.00475850
add esp, 0xc
jmp 0x452591
mov eax, dword [edx + 0x40]
mov edx, dword [esp + 0x34]
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x18]
test byte [eax + 0x30], 0x20
je 0x452638
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4525ae
mov ecx, 0x536fc0
jmp 0x4525bb
mov eax, dword [esp + 0x54]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x50]
add eax, ebx
mov ebx, dword [esp + 0x18]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x80]
push dword [eax + 8]
push dword [ebx + 0x28]
push dword [eax + 4]
push edi
push ebp
call fcn.004c9fe0
mov ecx, dword [esi + 0x6c]
add esp, 0x14
cmp dword [esi + 0x70], ecx
jg 0x452603
push 0
push edi
push 0
push 9
push esi
call fcn.0045f9a0
add esp, 0x14
and dword [ebx + 0x30], 0xffffffdf
jmp 0x4526a4
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 9
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
and dword [ebx + 0x30], 0xffffffdf
jmp 0x4526a4
mov eax, dword [esp + 0x80]
lea edx, [edi + 1]
mov ecx, dword [esi + 0x6c]
mov ebx, dword [eax + 4]
cmp dword [esi + 0x70], ecx
jg 0x45265e
push 0
push edx
push ebx
push 0x27
push esi
call fcn.0045f9a0
add esp, 0x14
jmp 0x45268d
mov ebp, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x27
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x4526a4
lea ecx, [eax + eax*4]
mov edx, 3
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4526b6
mov eax, 0x536fc0
jmp 0x4526bf
mov eax, dword [esi + 0x68]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x74]
mov dword [eax + 8], edx
test ecx, ecx
je 0x4526de
mov al, byte [ebp + 0x13]
cmp al, 8
jae 0x4526de
movzx eax, al
mov dword [ebp + eax*4 + 0xa4], ecx
inc byte [ebp + 0x13]
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4526f3
mov eax, 0x536fc0
mov dword [eax + 8], edx
jmp 0x45270a
mov eax, dword [esp + 0x58]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x45270a
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x24]
pop edi
pop ebx
test eax, eax
je 0x452720
push eax
push dword [ebp]
call fcn.0048dd70
add esp, 8
pop esi
pop ebp
add esp, 0x5c
ret