Function at 0x45e1b0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x64
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 8]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x7c]
xor esi, esi
push esi
push esi
push esi
push 0x14
push eax
mov byte [esp + 0x27], 0
mov dword [esp + 0x30], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x4c], eax
call fcn.00432e70
mov ecx, dword [esp + 0x94]
mov edx, dword [ecx + 0x10]
mov ecx, dword [edi + 0xc]
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0xa0]
mov edx, dword [edx + 0x40]
shl ecx, 4
add ecx, eax
mov ebx, eax
add esp, 0x14
xor ebp, ebp
mov dword [esp + 0x14], esi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], edx
cmp ebx, ecx
jae 0x45e391
mov eax, edx
jmp 0x45e234
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
or ecx, dword [eax + 4]
mov edi, dword [ebx]
jne 0x45e2ac
test byte [ebx + 0xa], 2
jne 0x45e2ac
test byte [edi + 4], 1
jne 0x45e2ac
mov edx, dword [esp + 0x80]
mov eax, dword [edx + 0x2c]
lea ecx, [esp + 0x58]
push edi
push ecx
mov byte [esp + 0x74], 3
mov dword [esp + 0x64], 0x4254d0
mov dword [esp + 0x68], 0x425480
mov dword [esp + 0x78], eax
call fcn.0042ef70
add esp, 8
cmp byte [esp + 0x6c], 0
je 0x45e2ac
mov edx, dword [esp + 0x78]
mov eax, dword [edx]
push 0
push 0
push edi
push eax
call fcn.0043b0d0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x88]
push ecx
mov ecx, dword [edx]
call fcn.00434270
add esp, 0x14
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
push eax
mov eax, dword [esp + 0x84]
push ecx
mov ecx, ebx
call fcn.00437390
add esp, 8
test eax, eax
je 0x45e384
mov edi, dword [ebx + 0x1c]
cmp edi, 0x40
jl 0x45e2ef
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], SysStringLen
jmp 0x45e305
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.0049a1d0
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
cmp byte [esp + 0x13], 0
jne 0x45e334
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 4]
shl edi, 4
mov ecx, dword [edi + edx]
mov edx, dword [eax]
push ecx
push edx
push str.automatic_index_on__s__s_
push 0x11c
call fcn.0043e160
add esp, 0x10
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
and eax, ebp
and ecx, esi
or eax, ecx
jne 0x45e384
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x14]
mov edx, dword [ecx]
mov edi, dword [esp + 0x18]
inc eax
push edx
mov dword [esp + 0x34], eax
call fcn.004310d0
add esp, 4
test eax, eax
jne 0x45ed93
mov edx, dword [esp + 0x14]
or ebp, dword [esp + 0x28]
or esi, dword [esp + 0x2c]
mov eax, edi
mov ecx, dword [eax + 0x30]
mov eax, dword [esp + 0x30]
mov dword [ecx + edx*4], ebx
mov dword [esp + 0x14], eax
add ebx, 0x30
cmp ebx, dword [esp + 0x34]
jb 0x45e230
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x80]
mov word [eax + 0x28], bx
mov word [eax + 0x18], bx
mov dword [eax + 0x24], 0x4241
mov eax, dword [ecx + 0x38]
mov edi, dword [ecx + 0x3c]
mov ecx, dword [esp + 0x24]
not ebp
and ebp, eax
movzx eax, word [ecx + 0x2a]
not esi
or esi, 0x80000000
and esi, edi
mov edx, 0x3f
cmp dx, ax
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], esi
mov dword [esp + 0x30], eax
jge 0x45e3e5
mov eax, edx
jmp 0x45e3e6
cwde
xor esi, esi
mov dword [esp + 0x20], eax
test eax, eax
jle 0x45e414
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.0049a1d0
and edx, dword [esp + 0x54]
and eax, ebp
or eax, edx
je 0x45e409
inc ebx
inc esi
cmp esi, dword [esp + 0x20]
jl 0x45e3f0
mov dword [esp + 0x14], ebx
and edi, 0x80000000
xor eax, eax
or eax, edi
je 0x45e42d
movsx eax, word [esp + 0x30]
lea ebx, [ebx + eax - 0x3f]
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x78]
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [eax]
inc ebx
push ebx
xor edx, edx
call fcn.00438fc0
mov ebx, eax
add esp, 8
mov dword [esp + 0x28], ebx
test ebx, ebx
je 0x45ed93
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x7c]
mov dword [ecx + 0x20], ebx
xor edi, edi
mov dword [ebx], str.auto_index
mov dword [ebx + 0xc], edx
mov ebp, dword [eax + 0x14]
mov dword [esp + 0x30], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
cmp ebp, dword [esp + 0x34]
jae 0x45e638
jmp 0x45e490
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x80]
cmp ecx, dword [edx + 0x2c]
jne 0x45e623
movzx eax, word [ebp + 0xc]
test al, 0x82
je 0x45e623
mov ecx, edx
test byte [ecx + 0x24], 8
je 0x45e4c8
mov edx, dword [ebp]
test byte [edx + 4], 1
jne 0x45e4c8
test al, al
js 0x45e623
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x24]
and eax, dword [esp + 0x84]
and ecx, dword [esp + 0x88]
or eax, ecx
jne 0x45e623
mov eax, dword [ebp + 0x1c]
test eax, eax
jl 0x45e623
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx + 0x10]
mov ecx, dword [edx + 4]
mov esi, dword [ebp]
shl eax, 4
mov dl, byte [ecx + eax + 0xd]
mov eax, dword [esi + 0xc]
mov byte [esp + 0x13], dl
call fcn.00434020
mov bl, al
mov eax, dword [esi + 0x10]
test eax, eax
je 0x45e535
call fcn.00434020
test al, al
je 0x45e548
test bl, bl
je 0x45e54c
cmp al, 0x43
jge 0x45e531
cmp bl, 0x43
jl 0x45e554
mov bl, 0x43
jmp 0x45e556
test dword [esi + 4], 0x800
je 0x45e550
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
jmp 0x45e51b
test bl, bl
je 0x45e554
add bl, al
jmp 0x45e556
test bl, bl
jne 0x45e556
mov bl, 0x41
movsx eax, bl
sub eax, 0x41
je 0x45e581
sub eax, 1
je 0x45e56f
xor eax, eax
cmp byte [esp + 0x13], 0x43
setge al
jmp 0x45e579
xor eax, eax
cmp byte [esp + 0x13], 0x42
sete al
test eax, eax
je 0x45e623
mov ecx, dword [ebp + 0x1c]
cmp ecx, 0x40
jl 0x45e592
xor eax, eax
mov edx, SysReAllocString
jmp 0x45e59e
mov eax, 1
xor edx, edx
call fcn.0049a1d0
mov ecx, eax
and ecx, dword [esp + 0x48]
mov esi, edx
and esi, dword [esp + 0x4c]
or ecx, esi
jne 0x45e623
or dword [esp + 0x4c], edx
or dword [esp + 0x48], eax
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov ecx, dword [ebp]
mov dx, word [ebp + 0x1c]
mov word [eax + edi*2], dx
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
mov ecx, 0x100
test dword [eax + 4], ecx
je 0x45e5df
mov ecx, dword [esp + 0x78]
push ecx
jmp 0x45e603
test esi, esi
je 0x45e5ef
test dword [esi + 4], ecx
je 0x45e5ef
mov edx, dword [esp + 0x78]
push edx
jmp 0x45e601
mov ebx, dword [esp + 0x78]
push ebx
call fcn.00452ef0
add esp, 4
test eax, eax
jne 0x45e60f
push ebx
mov eax, esi
call fcn.00452ef0
add esp, 4
test eax, eax
je 0x45e613
mov eax, dword [eax]
jmp 0x45e618
mov eax, 0x4b7a1c
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x20]
mov dword [edx + edi*4], eax
inc edi
add ebp, 0x30
cmp ebp, dword [esp + 0x34]
jb 0x45e490
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x30], edi
mov ebp, dword [esp + 0x78]
xor esi, esi
cmp dword [esp + 0x20], esi
jle 0x45e67b
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.0049a1d0
and eax, dword [esp + 0x50]
and edx, dword [esp + 0x54]
or eax, edx
je 0x45e670
mov eax, dword [ebx + 4]
mov word [eax + edi*2], si
mov ecx, dword [ebx + 0x20]
mov dword [ecx + edi*4], 0x4b7a1c
inc edi
inc esi
cmp esi, dword [esp + 0x20]
jl 0x45e644
mov dword [esp + 0x30], edi
mov edx, dword [esp + 0x80]
mov ecx, dword [edx + 0x3c]
and ecx, 0x80000000
xor eax, eax
or eax, ecx
je 0x45e6c1
mov ecx, dword [esp + 0x24]
mov eax, 0x3f
mov edx, eax
cmp dx, word [ecx + 0x2a]
jge 0x45e6c1
mov edx, dword [ebx + 4]
mov word [edx + edi*2], ax
mov edx, dword [ebx + 0x20]
mov dword [edx + edi*4], 0x4b7a1c
movsx edx, word [ecx + 0x2a]
inc eax
inc edi
cmp eax, edx
jl 0x45e6a2
mov dword [esp + 0x30], edi
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0x38]
or ecx, 0xffffffff
mov word [eax + edi*2], cx
mov edx, dword [ebx + 0x20]
mov ecx, dword [esp + 0x14]
mov dword [edx + edi*4], 0x4b7a1c
mov eax, dword [ebp + 0x28]
mov edi, dword [esp + 0x8c]
mov dword [edi + 8], eax
inc dword [ebp + 0x28]
mov eax, dword [esi + 0x88]
mov ebp, dword [esi + 0xc]
mov edx, dword [edi + 8]
inc ecx
cmp dword [ebp + 0x30], eax
jg 0x45e710
xor ebp, ebp
push ebp
push ecx
push edx
push 0x6d
call fcn.00432e30
add esp, 0x10
jmp 0x45e73c
lea ebp, [eax + 1]
mov dword [esi + 0x88], ebp
mov ebp, dword [esi + 0x58]
lea eax, [eax + eax*4]
lea eax, [ebp + eax*4]
xor ebp, ebp
mov byte [eax], 0x6d
mov word [eax + 2], bp
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov byte [eax + 1], 0
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 8]
push ebx
push eax
mov dword [esp + 0x88], ecx
call fcn.004541d0
add esp, 8
cmp eax, ebp
je 0x45e78a
mov edx, dword [esp + 0x80]
mov ecx, dword [edx]
cmp byte [ecx + 0x49], 0
je 0x45e773
push 0xfffffffffffffff7
call fcn.0042db50
add esp, 4
jmp 0x45e78a
mov ecx, dword [edx + 0x88]
mov edx, dword [edx + 0x58]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4 - 0x14]
mov byte [ecx + 1], 0xf7
mov dword [ecx + 0x10], eax
mov edx, dword [esp + 0x78]
inc dword [edx + 0x3c]
mov ecx, dword [esp + 0x7c]
movzx eax, byte [edi + 0x2c]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*8]
test byte [ecx + eax*8 + 0x30], 0x10
lea ebx, [ecx + eax*8 + 8]
mov ecx, dword [esi + 0x88]
mov dword [esp + 0x7c], ebx
je 0x45e8a7
mov edx, dword [esi + 0xc]
cmp dword [edx + 0x30], ecx
mov edi, dword [ebx + 0x1c]
jg 0x45e7d4
push ebp
push ebp
push ebp
push 0x43
call fcn.00432e30
add esp, 0x10
jmp 0x45e800
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*4]
xor edx, edx
mov byte [eax], 0x43
mov word [eax + 2], dx
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov byte [eax + 1], dl
mov eax, ecx
mov edx, dword [esi + 0xc]
mov ecx, dword [ebx + 0x18]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x88]
cmp dword [edx + 0x30], eax
jg 0x45e824
push ecx
push ebp
push edi
push 0xf
call fcn.00432e30
add esp, 0x10
jmp 0x45e84e
lea edx, [eax + 1]
mov dword [esi + 0x88], edx
mov edx, dword [esi + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
xor edx, edx
mov byte [eax], 0xf
mov word [eax + 2], dx
mov dword [eax + 4], edi
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ebp
mov byte [eax + 1], dl
mov ecx, dword [esi + 0x88]
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x45e875
push ebp
push ebp
push edi
push 0x10
call fcn.00432e30
mov edx, dword [esp + 0x88]
add esp, 0x10
jmp 0x45e8f4
lea edx, [ecx + 1]
mov dword [esi + 0x88], edx
mov edx, dword [esi + 0x58]
lea eax, [ecx + ecx*4]
lea eax, [edx + eax*4]
xor edx, edx
mov word [eax + 2], dx
mov byte [eax + 1], dl
mov edx, dword [esp + 0x78]
mov byte [eax], 0x10
mov dword [eax + 4], edi
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov eax, ecx
jmp 0x45e8f4
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
mov edi, dword [edi + 4]
jg 0x45e8c8
push ebp
push ebp
push edi
push 0x25
call fcn.00432e30
mov edx, dword [esp + 0x88]
add esp, 0x10
jmp 0x45e8f4
mov ebx, dword [esi + 0x58]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea eax, [ecx + ecx*4]
lea eax, [ebx + eax*4]
xor ebx, ebx
mov byte [eax], 0x25
mov word [eax + 2], bx
mov dword [eax + 4], edi
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov byte [eax + 1], bl
mov eax, ecx
mov dword [esp + 0x34], eax
cmp dword [esp + 0x1c], ebp
je 0x45ea60
mov edi, dword [esi + 0xc]
mov eax, dword [edi + 0x44]
lea ecx, [eax + 1]
mov dword [edi + 0x44], ecx
lea ecx, [eax - 1]
mov dword [esp + 0x80], eax
test eax, ecx
jne 0x45ea1a
mov ebx, dword [edi + 0x48]
mov esi, dword [edi]
mov ebp, eax
xor ecx, ecx
lea ebp, [ebp*8 + 4]
test ebx, ebx
jne 0x45e942
push ecx
push ebp
mov eax, esi
call fcn.0042a500
add esp, 8
jmp 0x45e973
cmp ebx, dword [esi + 0x128]
jb 0x45e968
cmp ebx, dword [esi + 0x12c]
jae 0x45e968
movzx eax, word [esi + 0x10c]
cdq
cmp ecx, edx
ja 0x45e968
jb 0x45e964
cmp ebp, eax
ja 0x45e968
mov ebp, ebx
jmp 0x45e975
push ecx
push ebp
push ebx
call fcn.0042a590
add esp, 0xc
mov ebp, eax
test ebp, ebp
jne 0x45ea11
test ebx, ebx
je 0x45ea11
test esi, esi
je 0x45e9bc
cmp dword [esi + 0x1d8], ebp
je 0x45e99c
mov eax, ebx
mov ecx, esi
call fcn.0041d150
jmp 0x45ea11
cmp ebx, dword [esi + 0x128]
jb 0x45e9bc
cmp ebx, dword [esi + 0x12c]
jae 0x45e9bc
mov edx, dword [esi + 0x124]
mov dword [ebx], edx
mov dword [esi + 0x124], ebx
jmp 0x45ea11
cmp dword [0x4c90b0], 0
je 0x45ea07
mov eax, dword [0x4d3da8]
test eax, eax
je 0x45e9d8
push eax
call dword [0x4c910c]
add esp, 4
push ebx
call dword [0x4c90e8]
sub dword [0x4d3d48], eax
dec dword [0x4d3d6c]
push ebx
call dword [0x4c90e0]
mov eax, dword [0x4d3da8]
add esp, 8
test eax, eax
je 0x45ea11
push eax
call dword [0x4c9114]
jmp 0x45ea0e
push ebx
call dword [0x4c90e0]
add esp, 4
mov edx, dword [esp + 0x78]
mov dword [edi + 0x48], ebp
xor ebp, ebp
mov eax, dword [edi + 0x48]
cmp eax, ebp
je 0x45ea2f
mov ecx, dword [esp + 0x80]
mov dword [eax + ecx*4], 0xffffffff
or eax, 0xffffffff
sub eax, dword [esp + 0x80]
push 0x10
push eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x24]
push eax
push edx
call fcn.0047e890
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x88]
add esp, 0x10
or dword [eax + 0x24], 0x20000
mov al, byte [edx + 0x13]
test al, al
jne 0x45ea6f
inc dword [edx + 0x2c]
mov ebp, dword [edx + 0x2c]
jmp 0x45ea7e
dec al
movzx ecx, al
mov byte [edx + 0x13], al
mov ebp, dword [edx + ecx*4 + 0x15c]
mov esi, dword [esp + 0x8c]
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x78]
push 0
push 0
push 0
push 0
push ebp
push edx
push eax
mov edi, ebx
mov dword [esp + 0x9c], ebp
call fcn.0045bc60
mov ecx, dword [esi + 8]
mov esi, dword [esp + 0x54]
mov edx, dword [esi + 0xc]
mov edi, eax
mov eax, dword [esi + 0x88]
add esp, 0x1c
cmp dword [edx + 0x30], eax
jg 0x45ead6
push 0
push ebp
push ecx
push 0x81
call fcn.00432e30
add esp, 0x10
jmp 0x45eb02
lea edx, [eax + 1]
mov dword [esi + 0x88], edx
mov edx, dword [esi + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
xor edx, edx
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax], 0x81
mov word [eax + 2], dx
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x45eb1c
mov ecx, dword [esi + 0x58]
lea eax, [eax + eax*4]
mov edx, 0x10
mov word [ecx + eax*4 - 0x12], dx
cmp dword [esp + 0x1c], 0
je 0x45eb42
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0x48]
test eax, eax
je 0x45eb42
mov ecx, dword [esp + 0x3c]
lea edx, [ecx*4 + 4]
mov ecx, dword [esi + 0x88]
sub eax, edx
mov dword [eax], ecx
mov edx, dword [esp + 0x7c]
test byte [edx + 0x28], 0x10
je 0x45ec05
mov eax, dword [esp + 0x40]
test eax, eax
jge 0x45eb5f
mov eax, dword [esi + 0x88]
dec eax
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
je 0x45eb6e
mov eax, 0x4d3a28
jmp 0x45eb77
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + edx*4]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x34]
add edi, ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 8], edi
mov eax, dword [edx + 4]
mov edi, dword [ecx + 0x20]
push 1
push eax
mov edx, ebp
mov eax, ebx
call fcn.00428540
mov eax, dword [esi + 0x88]
mov edx, dword [esi + 0xc]
add esp, 8
cmp dword [edx + 0x30], eax
jg 0x45ebd1
push 0
push ebp
push 0
push 0xd
call fcn.00432e30
mov eax, dword [esp + 0x8c]
add esp, 0x10
and dword [eax + 0x28], 0xffffffef
jmp 0x45ec60
lea ecx, [eax + 1]
mov dword [esi + 0x88], ecx
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + edx*4]
xor ecx, ecx
mov byte [eax], 0xd
mov word [eax + 2], cx
mov dword [eax + 4], ecx
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov eax, dword [esp + 0x7c]
and dword [eax + 0x28], 0xffffffef
jmp 0x45ec60
mov eax, dword [esi + 0x88]
mov edi, dword [esi + 0xc]
cmp dword [edi + 0x30], eax
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x8c]
mov edx, dword [edx + 4]
lea ecx, [ebp + 1]
jg 0x45ec34
push 0
push ecx
push edx
push 7
call fcn.00432e30
add esp, 0x10
jmp 0x45ec60
lea edi, [eax + 1]
mov dword [esi + 0x88], edi
mov edi, dword [esi + 0x58]
lea eax, [eax + eax*4]
lea eax, [edi + eax*4]
xor edi, edi
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax], 7
mov word [eax + 2], di
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x45ec7a
mov edx, dword [esi + 0x58]
lea ecx, [eax + eax*4]
mov eax, 3
mov word [edx + ecx*4 - 0x12], ax
mov ecx, dword [esi + 0x88]
test ebp, ebp
jge 0x45ec87
lea ebp, [ecx - 1]
mov edx, dword [esi]
cmp byte [edx + 0x49], 0
je 0x45ec96
mov eax, 0x4d3a28
jmp 0x45eca0
mov edx, dword [esi + 0x58]
lea eax, [ebp + ebp*4]
lea eax, [edx + eax*4]
mov edi, dword [esp + 0x80]
mov dword [eax + 8], ecx
test edi, edi
je 0x45ece5
mov dl, byte [ebx + 0x13]
cmp dl, 8
jae 0x45ece5
xor eax, eax
lea ecx, [ebx + 0x94]
cmp byte [ebx + 0x19], al
jbe 0x45ecd8
cmp dword [ecx + 0xc], edi
je 0x45ed55
movzx ebp, byte [ebx + 0x19]
inc eax
add ecx, 0x14
cmp eax, ebp
jl 0x45ecc3
movzx eax, dl
mov dword [ebx + eax*4 + 0x15c], edi
inc byte [ebx + 0x13]
dec dword [ebx + 0x3c]
xor edi, edi
cmp byte [ebx + 0x19], 0
jbe 0x45ed67
lea ecx, [ebx + 0x9a]
mov dl, 0xff
mov eax, dword [ecx + 2]
cmp eax, dword [ebx + 0x3c]
jle 0x45ed5b
cmp byte [ecx], 0
je 0x45ed1c
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x45ed1c
mov ebp, dword [ecx + 6]
movzx eax, al
mov dword [ebx + eax*4 + 0x15c], ebp
inc byte [ebx + 0x13]
add byte [ebx + 0x19], dl
movzx eax, byte [ebx + 0x19]
cmp edi, eax
jge 0x45ed5f
lea eax, [eax + eax*4]
mov ebp, dword [ebx + eax*4 + 0x94]
lea eax, [ebx + eax*4 + 0x94]
mov dword [ecx - 6], ebp
mov ebp, dword [eax + 4]
mov dword [ecx - 2], ebp
mov ebp, dword [eax + 8]
mov dword [ecx + 2], ebp
mov ebp, dword [eax + 0xc]
mov dword [ecx + 6], ebp
mov eax, dword [eax + 0x10]
mov dword [ecx + 0xa], eax
jmp 0x45ed5f
mov byte [ecx + 6], 1
jmp 0x45ece5
inc edi
add ecx, 0x14
movzx eax, byte [ebx + 0x19]
cmp edi, eax
jl 0x45ecf8
mov eax, dword [esp + 0x44]
mov ecx, dword [esi + 0x88]
test eax, eax
jge 0x45ed78
lea eax, [ecx - 1]
mov edx, dword [esi]
cmp byte [edx + 0x49], 0
je 0x45ed87
mov eax, 0x4d3a28
jmp 0x45ed90
mov edx, dword [esi + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
test eax, eax
je 0x45edaf
push eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
push ecx
call fcn.0042f330
add esp, 8
add esp, 0x64
ret