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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1e4
push ebx
push esi
push edi
mov ebx, ecx
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x30], ebx
call fcn.0049d470
lea eax, [ebp + 8]
push eax
lea ecx, [esp + 0x14]
call fcn.004780c0
lea ecx, [esp + 0x19c]
push ecx
lea ecx, [esp + 0x14]
call fcn.00478170
mov edx, dword [eax + 4]
mov eax, dword [eax]
push 1
push 0x10088228
push edx
push eax
lea ecx, [esp + 0x164]
call fcn.00477ea0
mov ecx, eax
call fcn.00477fb0
test eax, eax
je 0x450054
mov ecx, dword [0x100934d4]
mov edx, dword [0x100934d8]
mov eax, dword [0x100934dc]
mov dword [esp + 0x80], ecx
mov cx, word [0x100934e0]
mov word [esp + 0x8c], cx
lea ecx, [esp + 0x10]
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], eax
call fcn.00478260
cmp ax, 6
jb 0x450054
push 5
lea ecx, [esp + 0x14]
call fcn.00478270
cmp ax, 0x3a
jne 0x450054
push 4
lea ecx, [esp + 0x14]
call fcn.00478270
mov ecx, dword [ebx + 8]
mov word [esp + 0x88], ax
mov edx, dword [ecx]
mov edx, dword [edx + 0x30]
lea eax, [esp + 0x1c]
push eax
call edx
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x44fe42
mov esi, dword [eax]
mov edi, eax
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x180]
add esi, 0x14
call fcn.00477e80
mov ecx, eax
call fcn.00478190
mov edx, dword [esi]
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, edi
call edx
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x44fe35
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
test eax, eax
je 0x44fe35
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0xe0]
call fcn.00478090
mov ecx, dword [ebp + 0x10]
push eax
call fcn.00478140
lea ecx, [esp + 0xdc]
call fcn.00478160
lea ecx, [esp + 0x10]
mov edi, 6
call fcn.00478190
cmp word [eax], 0xc
jne 0x44fdcb
push 0x10087394
lea ecx, [esp + 0x190]
call fcn.00477e80
jmp 0x44fe08
lea ecx, [esp + 0x10]
call fcn.00478190
mov esi, dword [eax + 4]
add esi, 0xc
cmp word [esi], 0x5c
jne 0x44fde8
add esi, 2
mov edi, 7
lea ecx, [esp + 0x10]
call fcn.00478190
movzx eax, word [eax]
shr ax, 1
sub ax, di
lea ecx, [esp + 0x1a4]
push eax
push esi
call fcn.00477e60
mov ecx, eax
call fcn.00478190
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.004780e0
lea ecx, [esp + 0x20]
call fcn.00478f30
lea ecx, [esp + 0x1c]
call fcn.00478f30
jmp 0x450c0c
lea ecx, [esp + 0x20]
call fcn.00478f30
mov eax, dword [esp + 0x1c]
cmp dword [0x100a493c], 0
je 0x450048
push 4
lea ecx, [esp + 0x14]
call fcn.00478270
mov ecx, dword [0x100a4974]
movzx eax, ax
movzx eax, ax
movzx edi, word [ecx + eax*2]
sub edi, 0x41
cmp edi, 0x20
jae 0x450044
mov esi, dword [0x100a4870]
push 0
push 0x24
lea edx, [esp + 0x1d4]
push edx
push 0x17
add esi, 0xcb4
call dword [0x10087220]
push eax
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
mov ecx, esi
call edx
call eax
test eax, eax
jne 0x450044
mov al, byte [esp + edi + 0x1d0]
test al, al
je 0x44fec1
cmp al, 1
je 0x44fec1
cmp al, 4
jne 0x450044
lea eax, [esp + 0xe4]
push eax
lea ecx, [esp + 0xb0]
lea esi, [ebx + 0x34]
push ecx
mov ecx, esi
mov dword [esp + 0xb4], edi
call fcn.0044d100
test eax, eax
je 0x44ff09
mov ecx, dword [ebp + 0x10]
call fcn.00478280
mov ecx, dword [ebp + 0x14]
lea edx, [esp + 0x10]
push edx
call fcn.00478140
lea ecx, [esp + 0x1c]
call fcn.00478f30
jmp 0x450c0c
xor eax, eax
mov dword [esp + 0x6c], 1
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0xa8], edi
mov eax, dword [esp + 0x6c]
push eax
lea ecx, [esp + 0x64]
call fcn.00424640
lea ecx, [esp + 0x30]
push ecx
mov edx, ecx
push edx
mov ecx, esi
call fcn.0044cc00
mov ebx, dword [esp + 0x60]
lea eax, [esp + 0x6c]
push eax
push ebx
lea ecx, [esp + 0x90]
push ecx
call dword [0x100a493c]
lea edx, [esp + 0xa8]
push edx
mov ecx, esi
mov edi, eax
call fcn.0044d200
cmp edi, 0xea
je 0x44ff26
test edi, edi
jne 0x45003b
push 0x100934c4
lea ecx, [esp + 0xd4]
call fcn.004251e0
add ebx, 2
push ebx
lea ecx, [esp + 0xd4]
call fcn.00424450
mov eax, dword [esp + 0xd0]
push eax
lea ecx, [esp + 0x108]
call fcn.00477e80
mov ecx, eax
call fcn.00478190
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [eax + 4]
mov eax, dword [eax]
push esi
push ecx
mov ecx, dword [esp + 0x34]
push edx
push eax
call fcn.0044fc40
mov ecx, esi
call fcn.00478190
cmp word [eax], di
jbe 0x450001
mov ecx, esi
call fcn.00478260
sub ax, 1
mov ecx, esi
push eax
call fcn.00478270
cmp ax, 0x5c
je 0x450001
push 0x100881f0
mov ecx, esi
call fcn.00478210
lea ecx, [esp + 0x10]
call fcn.00478190
mov ecx, dword [eax + 4]
add ecx, 0xe
push ecx
mov ecx, esi
call fcn.00478210
lea ecx, [esp + 0xd0]
call fcn.004248d0
lea ecx, [esp + 0x60]
call fcn.00424680
lea ecx, [esp + 0x1c]
call fcn.00478f30
jmp 0x450c0c
lea ecx, [esp + 0x60]
call fcn.00424680
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x450054
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov ebx, dword [esp + 0x2c]
add ebx, 0x10
push 0xffffffffffffffff
lea ecx, [esp + 0x4f]
mov esi, ebx
push ecx
mov ecx, esi
mov dword [esp + 0x98], ebx
mov dword [esp + 0x78], esi
call fcn.004289d0
test al, al
je 0x450080
add dword [esi + 0x10], 1
mov al, 1
mov ecx, ebx
mov byte [esp + 0x74], al
call fcn.00467d20
test eax, eax
mov dword [esp + 0x5c], eax
je 0x450140
lea edx, [esp + 0x5c]
push edx
mov ecx, ebx
call fcn.0044d070
push eax
lea ecx, [esp + 0x38]
call fcn.004780c0
push 1
lea ecx, [esp + 0x14]
call fcn.00478190
push eax
lea ecx, [esp + 0x3c]
call fcn.00478190
push eax
call dword [0x100a4b74]
test eax, eax
je 0x450278
lea ecx, [esp + 0x34]
call fcn.00478190
push eax
lea ecx, [esp + 0x50]
call fcn.004780c0
push 0x100881f0
lea ecx, [esp + 0x50]
call fcn.00478210
push 1
lea ecx, [esp + 0x50]
call fcn.00478190
push eax
lea ecx, [esp + 0x18]
call fcn.00478190
push eax
lea ecx, [esp + 0x170]
call fcn.00477ec0
mov ecx, eax
call fcn.00477ef0
test eax, eax
jne 0x4502a4
lea ecx, [esp + 0x4c]
call fcn.00478160
lea ecx, [esp + 0x34]
call fcn.00478160
cmp dword [esp + 0x5c], 0
jne 0x450097
lea ecx, [esp + 0x70]
call fcn.00467830
push 0x100934b0
lea ecx, [esp + 0xcc]
call fcn.00477e80
push 1
lea ecx, [esp + 0xcc]
call fcn.00478190
push eax
lea ecx, [esp + 0x18]
call fcn.00478190
push eax
lea ecx, [esp + 0x1a0]
call fcn.00477ec0
mov ecx, eax
call fcn.00477ef0
test eax, eax
je 0x4501e1
lea ecx, [esp + 0xc8]
call fcn.00478260
movzx edi, ax
lea ecx, [esp + 0x10]
add edi, edi
call fcn.00478190
mov esi, dword [eax + 4]
lea ecx, [esp + 0x10]
add esi, edi
call fcn.00478260
movzx edi, ax
lea ecx, [esp + 0x10]
add edi, edi
call fcn.00478190
mov eax, dword [eax + 4]
add eax, edi
cmp esi, eax
je 0x4501e1
lea esp, [esp]
cmp word [esi], 0x5c
je 0x45031d
add esi, 2
cmp esi, eax
jne 0x4501d0
lea ecx, [esp + 0x10]
call fcn.00478190
mov edi, dword [eax + 4]
xor esi, esi
nop
cmp word [edi], 0x5c
je 0x45020b
lea ecx, [esp + 0x10]
call fcn.00478190
movzx edx, word [eax]
movzx ecx, si
add ecx, ecx
cmp ecx, edx
jne 0x450254
lea ecx, [esp + 0x78]
call fcn.00478040
lea eax, [esp + 0x78]
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.00478190
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x180]
call fcn.00477e60
mov ecx, eax
call fcn.00478190
push eax
call fcn.00466890
add esp, 8
test eax, eax
lea ecx, [esp + 0x78]
je 0x4503c4
call fcn.00478160
lea ecx, [esp + 0x10]
call fcn.00478190
movzx eax, word [eax]
movzx edx, si
add edx, edx
cmp edx, eax
je 0x450430
add esi, 1
add edi, 2
jmp 0x4501f0
mov ecx, dword [ebp + 0x10]
lea eax, [esp + 0x34]
push eax
call fcn.00478140
mov ecx, dword [ebp + 0x14]
call fcn.00478280
lea ecx, [esp + 0x34]
call fcn.00478160
lea ecx, [esp + 0x70]
call fcn.00467830
jmp 0x450c0c
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.00478140
lea ecx, [esp + 0x10]
call fcn.00478190
mov dx, word [eax]
shr dx, 1
lea ecx, [esp + 0x4c]
movzx esi, dx
call fcn.00478260
movzx edi, ax
lea ecx, [esp + 0x4c]
add edi, edi
call fcn.00478260
sub si, ax
lea ecx, [esp + 0x10]
push esi
call fcn.00478190
mov eax, dword [eax + 4]
add eax, edi
push eax
lea ecx, [esp + 0x11c]
call fcn.00477e60
mov ecx, eax
call fcn.00478190
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.004780e0
lea ecx, [esp + 0x4c]
call fcn.00478160
jmp 0x45028d
add esi, 2
cmp esi, eax
je 0x4501e1
jmp 0x450330
movzx ecx, word [esi]
cmp cx, 0x5c
je 0x4501e1
cmp cx, 0x3a
je 0x45034f
add esi, 2
cmp esi, eax
jne 0x450330
jmp 0x4501e1
cmp esi, eax
je 0x4501e1
cmp word [esi], 0x5c
je 0x450369
add esi, 2
cmp esi, eax
jne 0x450357
jmp 0x4501e1
push 0x100934c4
lea ecx, [esp + 0xb4]
call fcn.00478090
push esi
lea ecx, [esp + 0xb4]
call fcn.00478210
lea eax, [esp + 0x124]
push eax
lea ecx, [esp + 0xb4]
call fcn.00478170
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
mov ecx, dword [esp + 0x38]
push edx
call fcn.0044fc40
lea ecx, [esp + 0xb0]
call fcn.00478160
jmp 0x450c0c
push ecx
lea ecx, [esp + 0xa4]
call fcn.004780c0
lea ecx, [esp + 0x10]
call fcn.00478190
movzx edx, word [eax]
shr dx, 1
sub dx, si
lea ecx, [esp + 0x134]
push edx
push edi
call fcn.00477e60
mov ecx, eax
call fcn.00478190
push eax
lea ecx, [esp + 0xa4]
call fcn.004781a0
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x14]
call fcn.00478140
lea ecx, [esp + 0xa0]
call fcn.00478160
lea ecx, [esp + 0x78]
call fcn.00478160
jmp 0x4501e1
mov ecx, ebx
call fcn.00445090
call dword [0x10087064]
mov ecx, dword [ebx + 8]
mov esi, eax
cmp esi, ecx
lea eax, [ebx + 8]
je 0x450470
mov edx, dword [eax]
test edx, edx
jne 0x4507c9
push edx
push esi
push eax
call dword [0x10087228]
test eax, eax
sete al
test al, al
je 0x4507c9
mov dword [ebx + 0x10], 0
add dword [ebx + 0x10], 1
mov byte [esp + 0x1b], 1
mov ecx, ebx
call fcn.00445090
call dword [0x10087064]
mov esi, eax
mov eax, dword [ebx + 8]
cmp esi, eax
lea edi, [ebx + 8]
je 0x4504b9
mov ecx, dword [edi]
test ecx, ecx
jne 0x4507e4
push ecx
push esi
push edi
call dword [0x10087228]
test eax, eax
sete al
test al, al
je 0x4507e4
mov dword [ebx + 0x10], 0
add dword [ebx + 0x10], 1
mov byte [esp + 0x27], 1
mov ecx, ebx
call fcn.00445090
call dword [0x10087064]
mov edx, dword [edi]
mov esi, eax
cmp esi, edx
je 0x4504fe
mov eax, dword [edi]
test eax, eax
jne 0x4507ff
push eax
push esi
push edi
call dword [0x10087228]
test eax, eax
sete al
test al, al
je 0x4507ff
mov dword [ebx + 0x10], 0
add dword [ebx + 0x10], 1
mov al, 1
test al, al
mov ecx, dword [ebx + 0x18]
mov esi, dword [0x100870bc]
mov dword [esp + 0x9c], ecx
je 0x450549
add dword [ebx + 0x10], 0xffffffff
jne 0x450549
push 0
push edi
mov dword [ebx + 0x10], 0
call dword [0x100870c0]
mov edx, dword [ebx + 0xc]
test edx, edx
lea eax, [ebx + 0xc]
jle 0x450549
push eax
call dword [0x10087078]
mov eax, dword [ebx + 0x14]
push 0
push 1
push eax
call esi
cmp byte [esp + 0x27], 0
je 0x450581
add dword [ebx + 0x10], 0xffffffff
jne 0x450581
push 0
push edi
mov dword [ebx + 0x10], 0
call dword [0x100870c0]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
lea eax, [ebx + 0xc]
jle 0x450581
push eax
call dword [0x10087078]
mov edx, dword [ebx + 0x14]
push 0
push 1
push edx
call esi
mov eax, dword [esp + 0x9c]
test eax, eax
mov dword [esp + 0x68], eax
je 0x450653
lea eax, [esp + 0x68]
push eax
mov ecx, ebx
call fcn.0044d070
push eax
lea ecx, [esp + 0x40]
call fcn.004780c0
push 1
lea ecx, [esp + 0x14]
call fcn.00478190
push eax
lea ecx, [esp + 0x44]
call fcn.00478190
push eax
call dword [0x100a4b74]
test eax, eax
lea ecx, [esp + 0x3c]
je 0x450816
call fcn.00478190
push eax
lea ecx, [esp + 0x58]
call fcn.004780c0
push 0x100881f0
lea ecx, [esp + 0x58]
call fcn.00478210
lea ecx, [esp + 0x1c4]
push ecx
lea ecx, [esp + 0x14]
call fcn.00478170
push 1
lea ecx, [esp + 0x58]
mov esi, eax
call fcn.00478190
mov edx, dword [esi + 4]
push eax
mov eax, dword [esi]
push edx
push eax
lea ecx, [esp + 0x154]
call fcn.00477ea0
mov ecx, eax
call fcn.00477ef0
test eax, eax
jne 0x450880
lea ecx, [esp + 0x54]
call fcn.00478160
lea ecx, [esp + 0x3c]
call fcn.00478160
cmp dword [esp + 0x68], 0
jne 0x450594
mov esi, dword [0x100870bc]
cmp byte [esp + 0x1b], 0
je 0x45068e
add dword [ebx + 0x10], 0xffffffff
jne 0x45068e
push 0
lea eax, [ebx + 8]
push eax
mov dword [ebx + 0x10], 0
call dword [0x100870c0]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
lea eax, [ebx + 0xc]
jle 0x45068e
push eax
call dword [0x10087078]
mov edx, dword [ebx + 0x14]
push 0
push 1
push edx
call esi
push 0
push 0x40
lea ecx, [esp + 0x18]
call fcn.00478190
push eax
push 0
lea ecx, [esp + 0x1bc]
call fcn.00477e30
lea ecx, [esp + 0x10]
call fcn.00478190
mov ax, word [eax]
shr ax, 1
movzx edi, ax
lea ecx, [esp + 0x10]
mov dword [esp + 0x20], edi
movzx ebx, di
call fcn.00478190
mov edx, dword [eax + 4]
movzx ecx, di
lea esi, [edx + ecx*2]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], 0
cmp word [esi], 0x5c
je 0x4506f0
cmp bx, di
jne 0x4509c8
lea ecx, [esp + 0x10]
call fcn.00478190
lea ecx, [ebx + ebx]
mov word [eax], cx
mov esi, dword [0x100a4870]
push 0x21
push 3
lea ecx, [esp + 0xf4]
mov dword [esp + 0x4c], 0
add esi, 0x15c
call fcn.00477e10
mov ecx, eax
call fcn.00478190
push eax
lea ecx, [esp + 0x1b8]
call fcn.00478190
push eax
mov eax, dword [esi]
push 0x100000
lea edx, [esp + 0x58]
push edx
mov edx, dword [eax + 0x24]
mov ecx, esi
call edx
call eax
test eax, eax
jne 0x4509b7
mov edi, 0x400
lea ebx, [ebx]
xor esi, esi
test edi, edi
jbe 0x450771
push edi
call fcn.0043e800
add esp, 4
mov esi, eax
mov ecx, dword [0x100a4870]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0xe8]
push eax
mov eax, dword [ecx + 0xb04]
push edi
push esi
add ecx, 0xb04
push 1
push edx
mov edx, dword [eax + 0x24]
call edx
call eax
cmp eax, 0xc0000004
je 0x4507b4
cmp eax, 0x80000005
je 0x4507b4
cmp eax, 0xc0000023
jne 0x45094d
add edi, 0x100
test esi, esi
je 0x450760
push esi
call fcn.0043e950
add esp, 4
jmp 0x450760
push 0xffffffffffffffff
push esi
mov ecx, ebx
call fcn.00425560
test al, al
jne 0x450470
mov byte [esp + 0x1b], al
jmp 0x450479
push 0xffffffffffffffff
push esi
mov ecx, ebx
call fcn.00425560
test al, al
jne 0x4504b9
mov byte [esp + 0x27], al
jmp 0x4504c2
push 0xffffffffffffffff
push esi
mov ecx, ebx
call fcn.00425560
test al, al
jne 0x4504fe
jmp 0x450504
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.00478140
mov ecx, dword [ebp + 0x14]
call fcn.00478280
lea ecx, [esp + 0x3c]
call fcn.00478160
cmp byte [esp + 0x1b], 0
je 0x450c0c
add dword [ebx + 0x10], 0xffffffff
jne 0x450c0c
push 0
lea eax, [ebx + 8]
push eax
mov dword [ebx + 0x10], 0
call dword [0x100870c0]
mov edx, dword [ebx + 0xc]
test edx, edx
lea eax, [ebx + 0xc]
jle 0x450c0c
push eax
call dword [0x10087078]
mov eax, dword [ebx + 0x14]
push 0
push 1
push eax
call dword [0x100870bc]
jmp 0x450c0c
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.00478140
lea ecx, [esp + 0x10]
call fcn.00478190
mov dx, word [eax]
shr dx, 1
lea ecx, [esp + 0x54]
movzx esi, dx
call fcn.00478260
movzx edi, ax
lea ecx, [esp + 0x54]
add edi, edi
call fcn.00478260
sub si, ax
lea ecx, [esp + 0x10]
push esi
call fcn.00478190
mov eax, dword [eax + 4]
add eax, edi
push eax
lea ecx, [esp + 0x18c]
call fcn.00477e60
mov ecx, eax
call fcn.00478190
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.004780e0
lea ecx, [esp + 0x54]
call fcn.00478160
lea ecx, [esp + 0x3c]
call fcn.00478160
cmp byte [esp + 0x1b], 0
je 0x450c0c
add dword [ebx + 0x10], 0xffffffff
jne 0x450c0c
push 0
lea eax, [ebx + 8]
push eax
mov dword [ebx + 0x10], 0
call dword [0x100870c0]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
lea eax, [ebx + 0xc]
jle 0x450c0c
push eax
call dword [0x10087078]
mov edx, dword [ebx + 0x14]
push 0
push 1
push edx
call dword [0x100870bc]
jmp 0x450c0c
test eax, eax
jne 0x4509aa
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push eax
push ecx
lea ecx, [esp + 0x18]
call fcn.004780e0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
sub edx, ebx
push edx
push eax
lea ecx, [esp + 0xfc]
call fcn.00477e60
mov ecx, eax
call fcn.00478190
push eax
lea ecx, [esp + 0x14]
call fcn.004781a0
lea ecx, [esp + 0x10]
call fcn.00478190
mov cx, word [eax]
shr cx, 1
movzx edx, cx
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], 1
jmp 0x4509ae
test esi, esi
je 0x4509b7
push esi
call fcn.0043e950
add esp, 4
lea ecx, [esp + 0x44]
call fcn.00446560
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x10]
call fcn.00478190
cmp dword [eax + 4], esi
je 0x4509f0
sub esi, 2
add ebx, 0xffff
cmp dword [esp + 0x30], 0
mov dword [esp + 0x1c], esi
je 0x4506e1
jmp 0x450a06
cmp dword [esp + 0x30], 0
jne 0x450a06
lea ecx, [esp + 0x10]
call fcn.00478190
lea ecx, [edi + edi]
mov word [eax], cx
lea ecx, [esp + 0x10]
call fcn.00478190
mov edx, dword [eax + 4]
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], edx
xor edi, edi
call fcn.00478190
mov ax, word [eax]
shr ax, 1
movzx ecx, ax
mov dword [esp + 0x20], ecx
mov edi, edi
mov edx, dword [esp + 0x1c]
cmp word [edx], 0x5c
je 0x450a45
cmp di, word [esp + 0x20]
jne 0x450b4b
lea ecx, [esp + 0x10]
call fcn.00478190
mov edx, dword [esp + 0x1c]
lea ecx, [edi + edi]
mov word [eax], cx
xor ebx, ebx
cmp word [edx], 0x5c
jne 0x450a72
lea ecx, [esp + 0x10]
call fcn.00478190
add word [eax], 2
mov ebx, 1
mov esi, dword [0x100a4870]
push 0x21
push 3
lea ecx, [esp + 0x104]
mov dword [esp + 0x34], 0
add esi, 0x15c
call fcn.00477e10
mov ecx, eax
call fcn.00478190
push eax
lea ecx, [esp + 0x1b8]
call fcn.00478190
mov edx, dword [esi]
push eax
push 0x100001
lea eax, [esp + 0x40]
push eax
mov eax, dword [edx + 0x24]
mov ecx, esi
call eax
call eax
test eax, eax
jne 0x450b37
push 0x400
call fcn.0043e800
mov esi, dword [0x100a4870]
add esp, 4
push 1
push 0
push 0
push 3
push 0x400
push eax
lea ecx, [esp + 0x124]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], 0x400
add esi, 0x51c
call fcn.00477e10
mov ecx, eax
call fcn.00478190
mov ecx, dword [esp + 0x44]
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x24]
push 0
push 0
push 0
push ecx
mov ecx, esi
call eax
call eax
test eax, eax
je 0x450b58
lea ecx, [esp + 0x94]
call fcn.00424680
lea ecx, [esp + 0x2c]
call fcn.00446560
cmp di, word [esp + 0x20]
je 0x450c27
add edi, 1
add dword [esp + 0x1c], 2
jmp 0x450a30
mov esi, dword [ebp + 0x10]
lea ecx, [esp + 0x10]
push ecx
mov ecx, esi
call fcn.00478140
test ebx, ebx
je 0x450b77
mov ecx, esi
call fcn.00478190
add word [eax], 0xfffe
mov eax, dword [esp + 0x20]
cmp ax, di
jne 0x450ba1
push 0x10087394
lea ecx, [esp + 0x120]
call fcn.00477e80
mov ecx, eax
call fcn.00478190
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edx
push eax
jmp 0x450bd5
sub eax, edi
sub eax, 1
push eax
lea ecx, [esp + 0x14]
call fcn.00478190
mov edx, dword [eax + 4]
movzx ecx, di
lea eax, [edx + ecx*2 + 2]
push eax
lea ecx, [esp + 0x134]
call fcn.00477e60
mov ecx, eax
call fcn.00478190
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
mov ecx, dword [ebp + 0x14]
call fcn.004780e0
lea ecx, [esp + 0x94]
call fcn.00424680
lea ecx, [esp + 0x2c]
call fcn.00446560
mov edx, dword [ebp + 0x10]
sub esp, 8
mov ecx, esp
push edx
call fcn.004780c0
mov ecx, dword [esp + 0x98]
call fcn.0044fb10
lea ecx, [esp + 0x10]
call fcn.00478160
lea ecx, [esp + 0x28]
call fcn.0049d490
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [esp + 0x10]
call fcn.00478190
mov ecx, dword [esp + 0x20]
lea edx, [ecx + ecx]
push 1
push 0x10088228
lea ecx, [esp + 0x18]
mov word [eax], dx
call fcn.00478190
push eax
lea ecx, [esp + 0x148]
call fcn.00477ec0
mov ecx, eax
call fcn.00477fb0
test eax, eax
je 0x450d8d
mov eax, dword [0x100934d4]
mov ecx, dword [0x100934d8]
mov edx, dword [0x100934dc]
mov dword [esp + 0xb8], eax
mov ax, word [0x100934e0]
mov dword [esp + 0xbc], ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0xc0], edx
mov word [esp + 0xc4], ax
call fcn.00478190
mov cx, word [eax]
and cx, 0xfffe
cmp cx, 0xc
jb 0x450d8d
lea ecx, [esp + 0x10]
call fcn.00478190
mov edx, dword [eax + 4]
cmp word [edx + 0xa], 0x3a
jne 0x450d8d
lea ecx, [esp + 0x10]
call fcn.00478190
mov eax, dword [eax + 4]
mov cx, word [eax + 8]
lea edx, [esp + 0xb8]
mov word [esp + 0xc0], cx
push edx
lea ecx, [esp + 0x150]
call fcn.00477e80
mov ecx, eax
call fcn.00478190
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x10]
push edx
call fcn.004780e0
lea ecx, [esp + 0x10]
mov edi, 6
call fcn.00478190
cmp word [eax], 0xc
jne 0x450d35
push 0x10087394
lea ecx, [esp + 0x160]
call fcn.00477e80
jmp 0x450d72
lea ecx, [esp + 0x10]
call fcn.00478190
mov esi, dword [eax + 4]
add esi, 0xc
cmp word [esi], 0x5c
jne 0x450d52
add esi, 2
mov edi, 7
lea ecx, [esp + 0x10]
call fcn.00478190
movzx eax, word [eax]
shr ax, 1
sub ax, di
lea ecx, [esp + 0x16c]
push eax
push esi
call fcn.00477e60
mov ecx, eax
call fcn.00478190
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.004780e0
jmp 0x450bf2
mov ecx, dword [ebp + 0x10]
call fcn.00478280
mov ecx, dword [ebp + 0x14]
lea eax, [esp + 0x10]
push eax
call fcn.00478140
jmp 0x450c0c