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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
xor edi, edi
push edi
push edi
push edi
push 0x14
push eax
mov byte [esp + 0x27], 0
mov dword [esp + 0x40], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x54], eax
call fcn.00451be0
mov ebx, dword [esi + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0xc]
lea esi, [eax + eax*2]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax + 0x40]
shl esi, 4
add esi, ebx
xor eax, eax
add esp, 0x14
mov dword [esp + 0x14], edi
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edi
cmp ebx, esi
jae 0x49897b
mov eax, ecx
jmp 0x4987a4
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
or edx, dword [eax + 4]
mov esi, dword [ebx]
jne 0x498819
test byte [ebx + 0xa], 2
jne 0x498819
test byte [esi + 4], 1
jne 0x498819
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x30]
lea edx, [esp + 0x64]
push esi
push edx
mov byte [esp + 0x80], 3
mov dword [esp + 0x70], 0x466030
mov dword [esp + 0x74], 0x466140
mov dword [esp + 0x84], ecx
call fcn.00462140
add esp, 8
cmp byte [esp + 0x78], 0
je 0x498819
mov eax, dword [ebp + 8]
mov eax, dword [eax]
push 0
push 0
push esi
push eax
call fcn.00465360
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 8]
push ecx
mov ecx, dword [edx]
call fcn.00464ed0
add esp, 0x14
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp + 0x10]
cmp eax, dword [ecx + 0x30]
jne 0x498962
movzx eax, word [ebx + 0xc]
test al, 0x82
je 0x498962
mov edx, ecx
test byte [edx + 0x24], 8
je 0x49884c
mov ecx, dword [ebx]
test byte [ecx + 4], 1
jne 0x49884c
test al, al
js 0x498962
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
and eax, dword [ebp + 0x14]
and ecx, dword [ebp + 0x18]
or eax, ecx
jne 0x498962
mov eax, dword [ebx + 0x1c]
test eax, eax
jl 0x498962
mov ecx, dword [edx + 0x10]
mov edx, dword [ecx + 4]
mov esi, dword [ebx]
shl eax, 4
mov al, byte [edx + eax + 0xd]
mov byte [esp + 0x12], al
call fcn.004642d0
movsx eax, al
sub eax, 0x41
je 0x4988ae
sub eax, 1
je 0x49889c
xor eax, eax
cmp byte [esp + 0x12], 0x43
setge al
jmp 0x4988a6
xor eax, eax
cmp byte [esp + 0x12], 0x42
sete al
test eax, eax
je 0x498962
mov esi, dword [ebx + 0x1c]
cmp esi, 0x40
jl 0x4988c8
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], SysReAllocStringLen
jmp 0x4988de
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.005ad010
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
cmp byte [esp + 0x13], 0
jne 0x49890d
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
shl esi, 4
mov edx, dword [esi + ecx]
push edx
push eax
push str.automatic_index_on__s__s_
push 0x11c
call fcn.00435dd0
add esp, 0x10
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
and eax, dword [esp + 0x50]
and ecx, edi
or eax, ecx
jne 0x498962
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x14]
mov edx, dword [ecx]
mov edi, dword [esp + 0x24]
inc esi
push edx
mov eax, esi
call fcn.00499810
add esp, 4
test eax, eax
jne 0x49937e
mov eax, dword [edi + 0x30]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
or dword [esp + 0x50], edx
mov dword [eax + ecx*4], ebx
mov eax, dword [esp + 0x34]
or dword [esp + 0x54], eax
mov edi, dword [esp + 0x54]
mov dword [esp + 0x14], esi
add ebx, 0x30
cmp ebx, dword [esp + 0x3c]
jb 0x4987a0
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov word [ecx + 0x28], dx
mov word [ecx + 0x18], dx
mov edx, dword [ebp + 0x10]
mov dword [ecx + 0x24], 0x4241
mov ecx, dword [edx + 0x40]
mov edx, dword [edx + 0x44]
not eax
mov ebx, eax
and ebx, ecx
mov ecx, dword [esp + 0x38]
movzx eax, word [ecx + 0x2a]
not edi
or edi, 0x80000000
and edi, edx
mov dword [esp + 0x1c], edx
mov edx, 0x3f
mov dword [esp + 0x28], eax
cmp dx, ax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], edi
mov eax, edx
jl 0x4989d0
movsx eax, word [esp + 0x28]
xor edi, edi
mov dword [esp + 0x30], eax
test eax, eax
jle 0x498a03
lea ebx, [ebx]
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.005ad010
and edx, dword [esp + 0x5c]
and eax, ebx
or eax, edx
je 0x4989fc
inc dword [esp + 0x14]
inc edi
cmp edi, dword [esp + 0x30]
jl 0x4989e0
mov ecx, dword [esp + 0x1c]
and ecx, 0x80000000
xor eax, eax
xor edi, edi
or eax, ecx
je 0x498a26
movsx eax, word [esp + 0x28]
mov ecx, dword [esp + 0x14]
lea edx, [ecx + eax - 0x3f]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x28]
push eax
mov eax, dword [ebp + 8]
inc ecx
push ecx
mov ecx, dword [eax]
xor edx, edx
call fcn.00472460
add esp, 8
mov dword [esp + 0x28], eax
cmp eax, edi
je 0x49937e
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
mov dword [ecx + 0x20], eax
mov dword [eax], str.auto_index
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov edi, dword [eax + 0x14]
cmp edi, esi
jae 0x498c16
lea ebx, [ebx]
mov ecx, dword [edi + 0x14]
mov edx, dword [ebp + 0x10]
cmp ecx, dword [edx + 0x30]
jne 0x498c09
movzx eax, word [edi + 0xc]
test al, 0x82
je 0x498c09
mov ecx, edx
test byte [ecx + 0x24], 8
je 0x498ab3
mov edx, dword [edi]
test byte [edx + 4], 1
jne 0x498ab3
test al, al
js 0x498c09
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x24]
and eax, dword [ebp + 0x14]
and ecx, dword [ebp + 0x18]
or eax, ecx
jne 0x498c09
mov eax, dword [edi + 0x1c]
test eax, eax
jl 0x498c09
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x10]
mov ecx, dword [edx + 4]
mov esi, dword [edi]
shl eax, 4
mov dl, byte [ecx + eax + 0xd]
mov eax, dword [esi + 0xc]
mov byte [esp + 0x13], dl
call fcn.00463ff0
mov bl, al
mov eax, dword [esi + 0x10]
test eax, eax
je 0x498b13
call fcn.00463ff0
test al, al
je 0x498b26
test bl, bl
je 0x498b2a
cmp al, 0x43
jge 0x498b0f
cmp bl, 0x43
jl 0x498b32
mov bl, 0x43
jmp 0x498b34
test dword [esi + 4], 0x800
je 0x498b2e
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
jmp 0x498af9
test bl, bl
je 0x498b32
add bl, al
jmp 0x498b34
test bl, bl
jne 0x498b34
mov bl, 0x41
movsx eax, bl
sub eax, 0x41
je 0x498b5f
sub eax, 1
je 0x498b4d
xor eax, eax
cmp byte [esp + 0x13], 0x43
setge al
jmp 0x498b57
xor eax, eax
cmp byte [esp + 0x13], 0x42
sete al
test eax, eax
je 0x498c09
mov ecx, dword [edi + 0x1c]
cmp ecx, 0x40
jl 0x498b70
xor eax, eax
mov edx, SysReAllocStringLen
jmp 0x498b7c
mov eax, 1
xor edx, edx
call fcn.005ad010
mov ecx, eax
and ecx, dword [esp + 0x50]
mov esi, edx
and esi, dword [esp + 0x54]
or ecx, esi
jne 0x498c09
or dword [esp + 0x54], edx
or dword [esp + 0x50], eax
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov ecx, dword [edi]
mov esi, dword [esp + 0x18]
mov dx, word [edi + 0x1c]
mov word [eax + esi*2], dx
mov esi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xc]
mov eax, 0x100
test dword [ecx + 4], eax
je 0x498bbf
mov eax, dword [ebp + 8]
push eax
jmp 0x498be1
test esi, esi
je 0x498bce
test dword [esi + 4], eax
je 0x498bce
mov ecx, dword [ebp + 8]
push ecx
jmp 0x498bdf
mov ebx, dword [ebp + 8]
push ebx
call fcn.00464180
add esp, 4
test eax, eax
jne 0x498bed
push ebx
mov ecx, esi
call fcn.00464180
add esp, 4
test eax, eax
je 0x498bf1
mov eax, dword [eax]
jmp 0x498bf6
mov eax, 0x5fcb18
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + 0x20]
mov dword [edx + ecx*4], eax
inc ecx
mov dword [esp + 0x18], ecx
add edi, 0x30
cmp edi, dword [esp + 0x3c]
jb 0x498a80
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x18]
xor esi, esi
cmp dword [esp + 0x30], esi
jle 0x498c5d
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.005ad010
and eax, dword [esp + 0x58]
and edx, dword [esp + 0x5c]
or eax, edx
je 0x498c52
mov eax, dword [edi + 4]
mov word [eax + ebx*2], si
mov ecx, dword [edi + 0x20]
mov dword [ecx + ebx*4], 0x5fcb18
inc ebx
inc esi
cmp esi, dword [esp + 0x30]
jl 0x498c26
mov dword [esp + 0x18], ebx
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 0x44]
and ecx, 0x80000000
xor eax, eax
or eax, ecx
je 0x498c9f
mov ecx, dword [esp + 0x38]
mov eax, 0x3f
mov edx, eax
cmp dx, word [ecx + 0x2a]
jge 0x498c9f
mov edx, dword [edi + 4]
mov word [edx + ebx*2], ax
mov edx, dword [edi + 0x20]
mov dword [edx + ebx*4], 0x5fcb18
movsx edx, word [ecx + 0x2a]
inc eax
inc ebx
cmp eax, edx
jl 0x498c80
mov dword [esp + 0x18], ebx
mov eax, dword [edi + 4]
mov esi, dword [esp + 0x40]
or ecx, 0xffffffff
mov word [eax + ebx*2], cx
mov edx, dword [edi + 0x20]
mov eax, dword [ebp + 8]
mov dword [edx + ebx*4], 0x5fcb18
mov ecx, dword [eax + 0x28]
mov edx, dword [ebp + 0x1c]
mov dword [edx + 8], ecx
inc dword [eax + 0x28]
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 0x88]
mov ebx, dword [esi + 0xc]
mov edx, dword [edx + 8]
inc ecx
cmp dword [ebx + 0x30], eax
jg 0x498cee
push 0
push ecx
push edx
push 0x6b
mov eax, esi
call fcn.00451ba0
add esp, 0x10
jmp 0x498d1a
lea ebx, [eax + 1]
mov dword [esi + 0x88], ebx
mov ebx, dword [esi + 0x58]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*4]
xor ebx, ebx
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax], 0x6b
mov word [eax + 2], bx
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 8]
push edi
push eax
call fcn.00474580
xor edx, edx
add esp, 8
cmp eax, edx
je 0x498d5c
mov ecx, dword [ebx]
cmp byte [ecx + 0x45], dl
je 0x498d45
mov edx, 0xfffffff7
call fcn.004524d0
xor edx, edx
jmp 0x498d5c
mov ecx, dword [ebx + 0x88]
mov edi, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
lea ecx, [edi + ecx*4 - 0x14]
mov byte [ecx + 1], 0xf7
mov dword [ecx + 0x10], eax
mov eax, dword [ebp + 8]
inc dword [eax + 0x3c]
mov ecx, dword [ebp + 0x1c]
movzx eax, byte [ecx + 0x2c]
mov edi, dword [ebp + 0xc]
mov edi, dword [edi]
mov edi, dword [edi + 4]
lea eax, [eax + eax*4]
shl eax, 4
test byte [eax + edi + 0x30], 0x10
lea edi, [eax + edi + 8]
mov dword [esp + 0x38], edi
je 0x498e72
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0xc]
cmp dword [edx + 0x30], ecx
mov ebx, dword [edi + 0x1c]
jg 0x498db1
push 0
push 0
push 0
push 0x38
mov eax, esi
call fcn.00451ba0
add esp, 0x10
xor edx, edx
jmp 0x498ddd
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], 0x38
mov word [eax + 2], dx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov byte [eax + 1], dl
mov eax, ecx
mov ecx, dword [esi + 0xc]
mov edi, dword [edi + 0x18]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x88]
cmp dword [ecx + 0x30], eax
jg 0x498e04
push edi
push 0
push ebx
push 0xf
mov eax, esi
call fcn.00451ba0
add esp, 0x10
jmp 0x498e2e
lea ecx, [eax + 1]
mov dword [esi + 0x88], ecx
mov ecx, dword [esi + 0x58]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov byte [eax], 0xf
mov word [eax + 2], cx
mov dword [eax + 4], ebx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edx
mov byte [eax + 1], cl
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0xc]
cmp dword [edx + 0x30], ecx
jg 0x498e4f
push 0
push 0
push ebx
push 0x10
mov eax, esi
call fcn.00451ba0
add esp, 0x10
jmp 0x498ec0
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], 0x10
mov word [eax + 2], dx
mov dword [eax + 4], ebx
mov byte [eax + 1], dl
jmp 0x498eb5
mov edi, dword [ecx + 4]
mov ecx, dword [esi + 0x88]
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x498e94
push edx
push edx
push edi
push 0x25
mov eax, esi
call fcn.00451ba0
add esp, 0x10
jmp 0x498ec0
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 byte [eax + 1], bl
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov eax, ecx
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x14], eax
je 0x499030
mov esi, dword [esi + 0xc]
mov ecx, dword [esi + 0x44]
lea eax, [ecx - 1]
lea edx, [ecx + 1]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x30], ecx
mov dword [esi + 0x44], edx
test ecx, eax
jne 0x498ff8
mov eax, esi
mov ebx, dword [eax + 0x48]
mov esi, dword [eax]
mov edi, ecx
xor ecx, ecx
lea edi, [edi*8 + 4]
test ebx, ebx
jne 0x498f0f
push ecx
push edi
mov eax, esi
call fcn.004341b0
jmp 0x498f3e
cmp ebx, dword [esi + 0x120]
jb 0x498f35
cmp ebx, dword [esi + 0x124]
jae 0x498f35
movzx eax, word [esi + 0x104]
cdq
cmp ecx, edx
ja 0x498f35
jb 0x498f31
cmp edi, eax
ja 0x498f35
mov edi, ebx
jmp 0x498f43
push ecx
push edi
mov eax, ebx
call fcn.004342c0
mov edi, eax
add esp, 8
test edi, edi
jne 0x498feb
test ebx, ebx
je 0x498feb
test esi, esi
je 0x498f93
cmp dword [esi + 0x1c8], edi
je 0x498f6d
mov eax, ebx
mov ecx, esi
call fcn.00433e00
jmp 0x498feb
cmp ebx, dword [esi + 0x120]
jb 0x498f93
cmp ebx, dword [esi + 0x124]
jae 0x498f93
mov ecx, dword [esi + 0x11c]
mov dword [ebx], ecx
dec dword [esi + 0x108]
mov dword [esi + 0x11c], ebx
jmp 0x498feb
cmp dword [0x66c5f0], 0
je 0x498fe1
mov eax, dword [0x672720]
test eax, eax
je 0x498faf
push eax
call dword [0x66c648]
add esp, 4
push ebx
call dword [0x66c624]
sub dword [0x672568], eax
dec dword [0x67258c]
add esp, 4
push ebx
call dword [0x66c61c]
mov eax, dword [0x672720]
add esp, 4
test eax, eax
je 0x498feb
push eax
call dword [0x66c650]
jmp 0x498fe8
push ebx
call dword [0x66c61c]
add esp, 4
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov dword [edx + 0x48], edi
mov esi, edx
mov esi, dword [esi + 0x48]
test esi, esi
je 0x499006
mov dword [esi + ecx*4], 0xffffffff
mov esi, dword [ebp + 8]
or eax, 0xffffffff
sub eax, ecx
push 0x10
push eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x34]
push eax
push esi
call fcn.0046a390
mov eax, dword [esp + 0x34]
add esp, 0x10
or dword [eax + 0x24], 0x20000
jmp 0x499033
mov esi, dword [ebp + 8]
mov al, byte [esi + 0x13]
test al, al
jne 0x499046
inc dword [esi + 0x2c]
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x24], ecx
jmp 0x499059
dec al
movzx edx, al
mov byte [esi + 0x13], al
mov eax, dword [esi + edx*4 + 0x15c]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov esi, dword [ebp + 0x1c]
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x28]
mov ebx, dword [ebp + 8]
push 0
push 0
push 0
push ecx
push edx
push eax
xor eax, eax
mov edi, ebx
call fcn.00476100
mov ecx, dword [esi + 8]
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 0xc]
mov edi, eax
mov eax, dword [esi + 0x88]
add esp, 0x18
cmp dword [edx + 0x30], eax
jg 0x4990ac
mov eax, dword [esp + 0x24]
push 0
push eax
push ecx
push 0x7e
mov eax, esi
call fcn.00451ba0
add esp, 0x10
jmp 0x4990dc
lea edx, [eax + 1]
mov dword [esi + 0x88], edx
mov edx, dword [esi + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x24]
xor edx, edx
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax], 0x7e
mov word [eax + 2], dx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], dl
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x4990f6
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov ecx, 0x10
mov word [eax + edx*4 - 0x12], cx
cmp dword [esp + 0x2c], 0
je 0x49911c
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0x48]
test eax, eax
je 0x49911c
mov edx, dword [esp + 0x44]
lea ecx, [edx*4 + 4]
mov edx, dword [esi + 0x88]
sub eax, ecx
mov dword [eax], edx
mov eax, dword [esp + 0x38]
test byte [eax + 0x28], 0x10
je 0x4991e0
mov eax, dword [esp + 0x48]
test eax, eax
jge 0x499139
mov eax, dword [esi + 0x88]
dec eax
mov ecx, dword [esi]
cmp byte [ecx + 0x45], 0
je 0x499148
mov eax, 0x672248
jmp 0x499151
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + edx*4]
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp + 0x1c]
add edi, ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + 8], edi
mov eax, dword [edx + 4]
mov edi, dword [ecx + 0x20]
mov edx, dword [esp + 0x14]
push 1
push eax
mov eax, ebx
call fcn.00498610
mov eax, dword [esi + 0x88]
mov edx, dword [esi + 0xc]
add esp, 8
cmp dword [edx + 0x30], eax
jg 0x4991a8
mov eax, dword [esp + 0x14]
push 0
push eax
push 0
push 0xd
mov eax, esi
call fcn.00451ba0
mov eax, dword [esp + 0x48]
add esp, 0x10
and dword [eax + 0x28], 0xffffffef
jmp 0x499237
lea ecx, [eax + 1]
mov dword [esi + 0x88], ecx
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x14]
xor ecx, ecx
mov byte [eax], 0xd
mov word [eax + 2], cx
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov eax, dword [esp + 0x38]
and dword [eax + 0x28], 0xffffffef
jmp 0x499237
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + 4]
mov eax, dword [esi + 0x88]
mov edi, dword [esi + 0xc]
inc ecx
cmp dword [edi + 0x30], eax
jg 0x49920b
push 0
push ecx
push edx
push 7
mov eax, esi
call fcn.00451ba0
add esp, 0x10
jmp 0x499237
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 0x499251
mov edx, dword [esi + 0x58]
lea ecx, [eax + eax*4]
mov eax, 3
mov word [edx + ecx*4 - 0x12], ax
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x88]
test eax, eax
jge 0x499262
lea eax, [ecx - 1]
mov edx, dword [esi]
cmp byte [edx + 0x45], 0
je 0x499271
mov eax, 0x672248
jmp 0x49927a
mov edx, dword [esi + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
cmp dword [esp + 0x24], 0
mov dword [eax + 8], ecx
je 0x4992c3
mov dl, byte [ebx + 0x13]
cmp dl, 8
jae 0x4992c3
xor eax, eax
lea ecx, [ebx + 0x94]
cmp byte [ebx + 0x19], al
jbe 0x4992b2
mov edi, dword [esp + 0x24]
cmp dword [ecx + 0xc], edi
je 0x49933c
movzx edi, byte [ebx + 0x19]
inc eax
add ecx, 0x14
cmp eax, edi
jl 0x499299
mov ecx, dword [esp + 0x24]
movzx eax, dl
mov dword [ebx + eax*4 + 0x15c], ecx
inc byte [ebx + 0x13]
dec dword [ebx + 0x3c]
xor edx, edx
mov dword [esp + 0x48], edx
cmp byte [ebx + 0x19], dl
jbe 0x499352
lea ecx, [ebx + 0x9a]
jmp 0x4992e0
mov eax, dword [ecx + 2]
cmp eax, dword [ebx + 0x3c]
jle 0x499342
cmp byte [ecx], 0
je 0x499304
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x499304
mov edi, dword [ecx + 6]
movzx eax, al
mov dword [ebx + eax*4 + 0x15c], edi
inc byte [ebx + 0x13]
dec byte [ebx + 0x19]
movzx eax, byte [ebx + 0x19]
cmp edx, eax
jge 0x49934a
lea edx, [eax + eax*4]
lea eax, [ebx + edx*4 + 0x94]
mov edx, dword [eax]
mov dword [ecx - 6], edx
mov edx, dword [eax + 4]
mov dword [ecx - 2], edx
mov edx, dword [eax + 8]
mov dword [ecx + 2], edx
mov edx, dword [eax + 0xc]
mov dword [ecx + 6], edx
mov eax, dword [eax + 0x10]
mov edx, dword [esp + 0x48]
mov dword [ecx + 0xa], eax
jmp 0x49934a
mov byte [ecx + 6], 1
jmp 0x4992c3
inc edx
mov dword [esp + 0x48], edx
add ecx, 0x14
movzx eax, byte [ebx + 0x19]
cmp edx, eax
jl 0x4992e0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esi + 0x88]
test eax, eax
jge 0x499363
lea eax, [ecx - 1]
mov edx, dword [esi]
cmp byte [edx + 0x45], 0
je 0x499372
mov eax, 0x672248
jmp 0x49937b
mov edx, dword [esi + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x499395
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push ecx
call fcn.00465180
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret