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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0x1c]
push ebx
push esi
mov esi, dword [ecx + 8]
push edi
mov edi, dword [ebp + 0x20]
movzx edx, byte [edi]
mov dword [ebp - 0x14], edx
mov edx, dword [edi + 4]
mov dword [ebp - 4], esi
mov dword [ebp - 0x10], edx
test eax, eax
je 0x46a661
movzx eax, byte [eax + 1]
mov dword [ebp - 0x18], eax
jmp 0x46a668
mov dword [ebp - 0x18], 0
cmp dword [ebp + 0x18], 0
jne 0x46a687
cmp dword [ebp - 0x18], 0
jne 0x46a687
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0xc]
mov ebx, dword [ebp + 0x24]
mov ecx, esi
call fcn.0046a4b0
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
mov edx, dword [edi + 8]
mov dword [ebp - 0xc], eax
test edx, edx
jne 0x46a6a2
mov edx, dword [ecx + 0x4c]
inc edx
mov dword [edi + 8], edx
add dword [ecx + 0x4c], eax
jmp 0x46a6b0
mov ebx, dword [ecx + 0x4c]
add edx, eax
cmp edx, ebx
jle 0x46a6b0
add ebx, eax
mov dword [ecx + 0x4c], ebx
mov dword [edi + 0xc], eax
mov edi, dword [edi + 8]
xor ecx, ecx
mov dword [ebp - 8], edi
cmp dword [ebp + 0x14], ecx
jl 0x46a742
xor ebx, ebx
cmp eax, ecx
jle 0x46a769
mov dword [ebp - 0x1c], ecx
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x58], edi
jg 0x46a6e9
push esi
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x46a718
mov edx, dword [esi + 4]
inc dword [esi + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 8]
mov dword [eax + 4], ecx
lea ecx, [ebx + edx]
mov dword [eax + 0xc], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], ebx
mov dword [eax + 0x10], ecx
mov word [eax], 0x2e
mov dword [eax + 0x14], ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 8]
mov edi, dword [ebp - 0x1c]
mov ecx, dword [eax + edi + 4]
push ecx
push 0x54b538
push esi
call fcn.00479490
inc ebx
add edi, 0x18
add esp, 0xc
mov dword [ebp - 0x1c], edi
cmp ebx, dword [ebp - 0xc]
jl 0x46a6d1
jmp 0x46a769
mov eax, dword [ebp - 0x14]
cmp eax, 3
je 0x46a769
cmp eax, 5
je 0x46a754
cmp eax, 9
jne 0x46a759
mov ecx, 1
mov edx, dword [ebp + 8]
push edi
push edx
mov edx, dword [ebp + 0x10]
call fcn.004778c0
add esp, 8
cmp dword [ebp - 0x18], 0
je 0x46ab48
mov edx, dword [ebp + 0x1c]
movzx eax, byte [edx + 1]
dec eax
je 0x46a9e5
dec eax
je 0x46a7a7
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 0x24]
mov edi, dword [ebp + 8]
push eax
mov eax, dword [ebp + 0x1c]
push ecx
mov ecx, dword [eax + 4]
push edx
push ecx
call fcn.0046a510
add esp, 0x10
jmp 0x46aa2a
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
lea edi, [eax + 1]
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x1c], edi
mov dword [ecx + 0x4c], eax
mov ebx, dword [esi + 4]
mov eax, dword [edx + 8]
mov dword [ebp + 0x14], eax
test ebx, ebx
je 0x46a7fe
mov edi, dword [esi]
lea edx, [eax + eax*2]
movsx eax, byte [ebx + edx*8 + 1]
mov ecx, dword [ebx + edx*8 + 0x10]
lea ebx, [ebx + edx*8]
call fcn.004791c0
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], eax
mov byte [ebx], 0x9b
mov eax, dword [esi + 0x20]
dec eax
cmp dword [ebp + 0x14], eax
jne 0x46a7fe
mov dword [esi + 0x20], eax
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 8]
test eax, eax
jns 0x46a80c
mov eax, dword [esi + 0x20]
dec eax
mov ecx, dword [esi]
cmp byte [ecx + 0x40], 0
je 0x46a81b
mov eax, 0x5719e4
jmp 0x46a824
lea edx, [eax + eax*2]
mov eax, dword [esi + 4]
lea eax, [eax + edx*8]
mov ecx, dword [ebp - 0x1c]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0xc]
mov byte [eax], 0x1c
mov dword [eax + 4], 1
mov eax, dword [esi + 0x20]
add eax, ecx
mov dword [ebp - 0x28], eax
mov dword [ebp + 0x14], 0
test ecx, ecx
jle 0x46a99b
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
sub eax, ecx
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x20], eax
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
push ecx
mov ecx, dword [eax + edx]
call fcn.004734c0
mov edi, dword [esi + 0x20]
mov ebx, eax
mov eax, dword [ebp - 0xc]
dec eax
add esp, 4
cmp dword [ebp + 0x14], eax
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x24], ebx
jge 0x46a8d4
cmp dword [eax + 0x58], edi
jg 0x46a8a1
push esi
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x46a919
mov edx, dword [esi + 4]
inc dword [esi + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x20]
add edx, ecx
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x28]
mov dword [eax + 8], edx
xor edx, edx
mov byte [eax + 3], 0
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edx
mov word [eax], 0x4e
mov dword [eax + 0x14], edx
jmp 0x46a91b
cmp dword [eax + 0x58], edi
jg 0x46a8e6
push esi
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x46a919
mov edx, dword [esi + 4]
inc dword [esi + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x20]
add edx, ecx
mov dword [eax + 4], edx
mov edx, dword [ebp + 0x24]
mov dword [eax + 8], edx
xor edx, edx
mov byte [eax + 3], 0
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edx
mov word [eax], 0x4f
mov dword [eax + 0x14], edx
jmp 0x46a91b
xor edx, edx
mov ecx, dword [esi + 4]
mov edi, dword [esi]
cmp ecx, edx
je 0x46a966
cmp byte [edi + 0x40], 0
jne 0x46a966
mov eax, dword [esi + 0x20]
lea eax, [eax + eax*2 - 3]
lea ebx, [ecx + eax*8]
movsx eax, byte [ebx + 1]
mov ecx, dword [ebx + 0x10]
call fcn.004791c0
cmp dword [ebp - 0x24], 0
mov dword [ebx + 0x10], 0
jne 0x46a95a
mov dword [ebx + 0x10], 0
mov byte [ebx + 1], 0
jmp 0x46a972
mov ecx, dword [ebp - 0x24]
mov dword [ebx + 0x10], ecx
mov byte [ebx + 1], 0xfc
jmp 0x46a972
mov ecx, ebx
mov eax, 0xfffffffc
call fcn.004791c0
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x46a984
mov eax, dword [esi + 0x20]
lea edx, [eax + eax*2]
mov byte [ecx + edx*8 - 0x15], 0x80
mov eax, dword [ebp + 0x14]
add dword [ebp - 0x18], 0x18
inc dword [ebp + 0x1c]
inc eax
mov dword [ebp + 0x14], eax
cmp eax, dword [ebp - 0xc]
jl 0x46a863
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x58], edi
jg 0x46a9b3
push esi
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x46aa2a
mov edx, dword [esi + 4]
inc dword [esi + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xc]
dec ecx
mov dword [eax + 0xc], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0x10], ecx
mov word [eax], 0x21
mov dword [eax + 0x14], ecx
jmp 0x46aa2a
mov ebx, dword [esi + 4]
mov eax, dword [edx + 8]
mov dword [ebp + 0x1c], eax
test ebx, ebx
je 0x46aa2a
mov edi, dword [esi]
lea edx, [eax + eax*2]
movsx eax, byte [ebx + edx*8 + 1]
mov ecx, dword [ebx + edx*8 + 0x10]
lea ebx, [ebx + edx*8]
call fcn.004791c0
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], eax
mov byte [ebx], 0x9b
mov eax, dword [esi + 0x20]
dec eax
cmp dword [ebp + 0x1c], eax
jne 0x46aa2a
mov dword [esi + 0x20], eax
xor edi, edi
cmp dword [ebp + 0x18], edi
jne 0x46ab48
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp + 0x1c], ecx
cmp ecx, edi
jle 0x46ab48
cmp dword [ebp + 0x24], edi
je 0x46ab48
mov ebx, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
cmp dword [edx + 0x58], ebx
jg 0x46aa6a
push esi
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x46aa92
mov ecx, dword [ebp + 0x1c]
mov edx, dword [esi + 4]
inc dword [esi + 0x20]
lea eax, [ebx + ebx*2]
lea eax, [edx + eax*8]
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], 0xffffffff
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov word [eax], 0x25
mov dword [eax + 0x14], edi
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x58], ebx
jg 0x46aab3
push esi
call fcn.00478b00
add esp, 4
test eax, eax
je 0x46aab3
mov dword [ebp + 0x1c], 1
jmp 0x46aadd
mov edx, dword [esi + 4]
inc dword [esi + 0x20]
lea ecx, [ebx + ebx*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp + 0x1c]
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov word [eax], 0x86
mov dword [eax + 0x14], edi
mov dword [ebp + 0x1c], ebx
mov ebx, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
cmp dword [edx + 0x58], ebx
jg 0x46aaf5
push esi
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x46ab1c
mov ecx, dword [esi + 4]
inc dword [esi + 0x20]
mov edx, dword [ebp + 0x24]
lea eax, [ebx + ebx*2]
lea eax, [ecx + eax*8]
mov byte [eax + 3], 0
mov dword [eax + 4], edi
mov dword [eax + 8], edx
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov word [eax], 0x10
mov dword [eax + 0x14], edi
push str.skip_OFFSET_records
push esi
call fcn.00479490
mov eax, dword [esi + 0x20]
mov ecx, dword [ebp + 0x1c]
add esp, 8
cmp eax, ecx
jbe 0x46ab3e
mov edx, dword [esi + 4]
lea ecx, [ecx + ecx*2]
mov dword [edx + ecx*8 + 8], eax
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
dec eax
mov dword [ecx + 0x5c], eax
mov eax, dword [ebp - 0x14]
dec eax
cmp eax, 0xc
ja case.0x46ab55.4
jmp dword [eax*4 + 0x46b148]
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x13]
test cl, cl
jne 0x46ab6e
inc dword [eax + 0x4c]
mov edi, dword [eax + 0x4c]
jmp 0x46ab7a
dec cl
movzx edx, cl
mov byte [eax + 0x13], cl
mov edi, dword [eax + edx*4 + 0x1c]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
push edi
push eax
push ecx
push 0x30
call fcn.00478b80
mov edx, dword [ebp - 0x10]
push edi
push edx
push 0x6b
call fcn.00478ca0
mov edx, dword [ebp + 8]
add esp, 0x1c
mov esi, edi
call fcn.00478a20
jmp 0x46b0de
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
push eax
push ecx
push edx
push 0x6c
call fcn.00478b80
add esp, 0x10
jmp case.0x46ab55.4
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x13]
test cl, cl
jne 0x46abd5
inc dword [eax + 0x4c]
mov edi, dword [eax + 0x4c]
jmp 0x46abe1
dec cl
mov byte [eax + 0x13], cl
movzx ecx, cl
mov edi, dword [eax + ecx*4 + 0x1c]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
push edi
push edx
push eax
push 0x30
call fcn.00478b80
add esp, 0x10
cmp dword [ebp - 0x14], 0xb
jne 0x46ac1e
mov ecx, dword [esi + 0x20]
mov ebx, dword [ebp - 0x10]
push 0
push edi
add ecx, 4
push ecx
inc ebx
push ebx
push 0x42
mov eax, esi
call fcn.00478e60
push edi
push ebx
push 0x6b
call fcn.00478ca0
add esp, 0x20
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x46ac39
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push edi
push edx
push eax
push esi
call fcn.0046a100
add esp, 0x10
jmp 0x46ac97
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x13]
test al, al
jne 0x46ac4e
mov eax, dword [ebp + 8]
inc dword [eax + 0x4c]
mov ebx, dword [eax + 0x4c]
jmp 0x46ac5d
mov ecx, dword [ebp + 8]
dec al
movzx edx, al
mov byte [ecx + 0x13], al
mov ebx, dword [ecx + edx*4 + 0x1c]
mov eax, dword [ebp - 0x10]
push ebx
push eax
push 0x45
call fcn.00478ca0
mov ecx, dword [ebp - 0x10]
push ebx
push edi
push ecx
push 0x46
call fcn.00478b80
mov eax, dword [esi + 4]
add esp, 0x1c
test eax, eax
je 0x46ac8b
mov esi, dword [esi + 0x20]
lea edx, [esi + esi*2]
mov byte [eax + edx*8 - 0x15], 8
mov edx, dword [ebp + 8]
mov esi, ebx
call fcn.00478a20
mov esi, edx
test edi, edi
je 0x46b0de
mov dl, byte [esi + 0x13]
cmp dl, 8
jae 0x46b0de
xor eax, eax
lea ecx, [esi + 0x78]
cmp dword [ecx + 0xc], edi
je 0x46accd
inc eax
add ecx, 0x14
cmp eax, 0xa
jl 0x46acb0
movzx eax, dl
mov dword [esi + eax*4 + 0x1c], edi
inc byte [esi + 0x13]
jmp 0x46b0de
mov byte [ecx + 6], 1
jmp 0x46b0de
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x20]
mov edx, dword [ecx + 8]
mov eax, dword [edx]
mov bl, byte [edi + 1]
inc edi
call fcn.00473370
test al, al
je 0x46ad03
test bl, bl
je 0x46ad0b
cmp al, 0x63
jge 0x46acff
cmp bl, 0x63
jge 0x46acff
mov al, 0x62
jmp 0x46ad0d
mov al, 0x63
jmp 0x46ad0d
test bl, bl
jne 0x46ad0b
mov al, 0x62
jmp 0x46ad0d
add al, bl
mov byte [edi], al
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x46ad30
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 0xc]
push ecx
push edx
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.0046a100
add esp, 0x10
jmp case.0x46ab55.4
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x13]
test cl, cl
jne 0x46ad42
inc dword [eax + 0x4c]
mov ebx, dword [eax + 0x4c]
jmp 0x46ad4e
dec cl
mov byte [eax + 0x13], cl
movzx ecx, cl
mov ebx, dword [eax + ecx*4 + 0x1c]
push 1
push edi
mov edi, dword [ebp - 8]
push ebx
push 1
push edi
push 0x30
call fcn.00478d00
mov eax, dword [ebp + 8]
mov ecx, 1
call fcn.004760e0
mov edx, dword [ebp - 0x10]
push ebx
push edx
push 0x6b
call fcn.00478ca0
mov edx, dword [ebp + 8]
add esp, 0x24
mov esi, ebx
call fcn.00478a20
mov esi, dword [ebp - 4]
jmp 0x46b0e7
mov eax, dword [ebp - 0x10]
push eax
push 1
push 0x19
call fcn.00478ca0
add esp, 0xc
jmp case.0x46ab55.4
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x46ad16
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 8]
mov edi, dword [ebp + 8]
push 1
push ecx
call fcn.004765c0
mov esi, dword [ebp - 4]
add esp, 8
jmp 0x46b0e7
cmp dword [ebp + 0x18], 0
je 0x46ae20
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x13]
test cl, cl
jne 0x46ade1
inc dword [eax + 0x4c]
mov edi, dword [eax + 0x4c]
jmp 0x46aded
dec cl
movzx edx, cl
mov byte [eax + 0x13], cl
mov edi, dword [eax + edx*4 + 0x1c]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
push edi
push eax
push ecx
push 0x30
call fcn.00478b80
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x18]
mov ebx, dword [ebp + 8]
push edi
push edx
push eax
push ebx
call fcn.0046a100
add esp, 0x20
mov esi, edi
mov edx, ebx
call fcn.00478a20
jmp 0x46b0de
cmp dword [ebp - 0x14], 9
jne 0x46ae3c
mov ecx, dword [ebp + 0x20]
mov edx, dword [ecx + 4]
push edx
push 0x16
call fcn.00478c40
add esp, 8
jmp 0x46b0e7
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
push ebx
push edi
push 0x23
call fcn.00478ca0
mov eax, dword [ebp + 8]
add esp, 0xc
mov ecx, ebx
call fcn.004760e0
jmp 0x46b0e7
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x10]
mov edi, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x13]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], edi
test cl, cl
jne 0x46ae84
inc dword [eax + 0x4c]
mov ecx, dword [eax + 0x4c]
jmp 0x46ae90
dec cl
movzx edx, cl
mov byte [eax + 0x13], cl
mov ecx, dword [eax + edx*4 + 0x1c]
mov edx, dword [eax + 0x3c]
mov ebx, dword [eax + 0x40]
mov dword [ebp + 0x10], ecx
lea ecx, [edi + 2]
mov dword [ebp + 0x14], ecx
mov dword [ebp + 0x1c], ebx
cmp ecx, edx
jg 0x46aeb6
lea edi, [ebx + ecx]
sub edx, ecx
mov dword [eax + 0x40], edi
mov edi, dword [ebp - 0x24]
mov dword [eax + 0x3c], edx
jmp 0x46aec4
mov edx, dword [eax + 0x4c]
lea ebx, [edx + 1]
add ecx, edx
mov dword [ebp + 0x1c], ebx
mov dword [eax + 0x4c], ecx
add ebx, edi
mov dword [ebp - 0x18], ebx
inc ebx
cmp dword [ebp - 0x14], 0xd
jne 0x46aeee
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
push edx
push eax
push 0
inc ecx
push ecx
push 0x42
mov eax, esi
call fcn.00478e60
add esp, 0x14
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
push ebx
push edx
push eax
push 0x30
call fcn.00478b80
add esp, 0x10
cmp dword [ebp - 0x14], 0xd
jne 0x46af29
mov ecx, dword [ebp - 0x10]
push ebx
inc ecx
push ecx
push 0x6b
call fcn.00478ca0
mov eax, dword [esi + 4]
add esp, 0xc
test eax, eax
je 0x46af29
mov ecx, dword [esi + 0x20]
lea edx, [ecx + ecx*2]
mov byte [eax + edx*8 - 0x15], 0x10
xor ebx, ebx
test edi, edi
jle 0x46af9c
mov dword [ebp + 0x20], ebx
xor ecx, ecx
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 8]
mov eax, dword [ebp + 0x20]
movzx edx, word [eax + edx + 0x14]
mov eax, dword [ebp - 8]
mov edi, dword [esi + 0x20]
lea edx, [edx + eax - 1]
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x1c], edx
cmp dword [eax + 0x58], edi
jg 0x46af66
push esi
call fcn.00478b00
add esp, 4
xor ecx, ecx
test eax, eax
jne 0x46af92
mov eax, dword [esi + 4]
inc dword [esi + 0x20]
lea edx, [edi + edi*2]
lea eax, [eax + edx*8]
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], edx
mov edx, dword [ebp + 0x1c]
add edx, ebx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x22
mov dword [eax + 0x14], ecx
add dword [ebp + 0x20], 0x18
inc ebx
cmp ebx, dword [ebp - 0x24]
jl 0x46af34
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x58], edi
jg 0x46afb4
push esi
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x46afe0
mov edx, dword [esi + 4]
inc dword [esi + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x44
mov dword [eax + 0x14], ecx
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x58], edi
jg 0x46aff8
push esi
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x46b029
mov edx, dword [esi + 4]
inc dword [esi + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x14]
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 0x10]
xor ebx, ebx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ebx
mov word [eax], 0x30
mov dword [eax + 0x14], ebx
jmp 0x46b02b
xor ebx, ebx
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
cmp dword [edx + 0x58], edi
jg 0x46b043
push esi
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x46b06d
mov ecx, dword [esi + 4]
inc dword [esi + 0x20]
mov edx, dword [ebp - 0x10]
lea eax, [edi + edi*2]
lea eax, [ecx + eax*8]
mov ecx, dword [ebp + 0x10]
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov word [eax], 0x6b
mov dword [eax + 0x14], ebx
mov eax, dword [ebp - 0x20]
cmp eax, ebx
je 0x46b08f
mov ecx, dword [esi + 0x20]
cmp ecx, eax
jbe 0x46b085
lea edx, [eax + eax*2]
mov eax, dword [esi + 4]
mov dword [eax + edx*8 + 8], ecx
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
dec ecx
mov dword [edx + 0x5c], ecx
mov eax, dword [ebp + 8]
cmp dword [ebp + 0x10], ebx
je 0x46b0c2
cmp byte [eax + 0x13], 8
jae 0x46b0c2
mov esi, dword [ebp + 0x10]
xor ecx, ecx
lea edx, [eax + 0x78]
cmp dword [edx + 0xc], esi
je 0x46b13d
inc ecx
add edx, 0x14
cmp ecx, 0xa
jl 0x46b0a5
movzx ecx, byte [eax + 0x13]
mov dword [eax + ecx*4 + 0x1c], esi
inc byte [eax + 0x13]
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0x1c]
mov ecx, esi
call fcn.004760e0
cmp esi, dword [eax + 0x3c]
jle 0x46b0de
mov edx, esi
mov ecx, edi
mov dword [eax + 0x3c], edx
mov dword [eax + 0x40], ecx
mov esi, dword [ebp - 4]
cmp dword [ebp + 0x18], 0
jne 0x46b136
mov edx, dword [ebp + 0xc]
mov ebx, dword [edx + 8]
test ebx, ebx
je 0x46b136
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x58], edi
jg 0x46b109
push esi
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x46b136
mov edx, dword [esi + 4]
inc dword [esi + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp + 0x28]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 4], ebx
mov dword [eax + 0xc], 0xffffffff
mov dword [eax + 0x10], ecx
mov word [eax], 0x87
mov dword [eax + 0x14], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [edx + 6], 1
jmp 0x46b0c2