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

Disassembly:
sub esp, 0x6e4
mov eax, dword [0x4baad8]
xor eax, esp
mov dword [esp + 0x6e0], eax
mov eax, dword [esp + 0x6e8]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x6f8]
cmp word [esi], 0
mov ebp, ecx
mov ecx, dword [esp + 0x6fc]
push edi
mov dword [esp + 0x64], eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x54], ecx
mov dword [esp + 0x2c], 0
je 0x43f9cb
push 0x10c
push 0
push eax
call fcn.0045ab70
mov eax, esi
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43f682
sub eax, edx
sar eax, 1
lea edx, [eax + eax]
mov eax, dword [ebp + 0x5c]
add dword [ebp + 0x7c], edx
push 0x4921e0
push esi
mov dword [ebp + 0x58], eax
call fcn.0045e94d
add esp, 8
test eax, eax
je 0x43f6b6
mov dword [ebp + 0x58], 0x20
lea edx, [esp + 0x4e8]
sub edx, esi
mov eax, esi
mov dword [esp + 0x48], edx
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x43f6c5
mov ebx, dword [ebp + 0x5c]
xor eax, eax
lea edi, [esp + 0x4e8]
mov dword [ebp + 0x54], eax
mov dword [esp + 0x3c], eax
cmp word [esp + 0x4e8], ax
je 0x43f921
push 1
push 0x4921dc
push edi
call fcn.0045e9cf
add esp, 0xc
test eax, eax
jne 0x43f828
push 0x208
push eax
lea ecx, [esp + 0x2e8]
push ecx
call fcn.0045ab70
lea edx, [esp + 0xe4]
add esp, 0xc
mov eax, edi
sub edx, edi
mov edi, edi
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x43f730
lea edx, [esp + 0xd8]
push 0x4921dc
push edx
call fcn.0045e94d
mov esi, eax
lea eax, [esp + 0xe0]
push 0x4921d8
push eax
add esi, 2
call fcn.0045e94d
xor ecx, ecx
lea edx, [esp + 0x2f0]
add esp, 0x10
mov word [eax], cx
mov eax, esi
sub edx, esi
jmp 0x43f780
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x43f780
lea eax, [esp + 0x2e0]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43f7a0
sub eax, edx
sar eax, 1
lea edx, [eax + eax*2]
add edx, edx
add edx, edx
cmp dword [esp + 0x3c], edx
jae 0x43f7e2
lea eax, [esp + 0x2e0]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43f7c6
sub eax, edx
sar eax, 1
shr eax, 1
lea eax, [eax + eax*2]
add eax, eax
add eax, eax
mov dword [esp + 0x3c], eax
push 0x4921d8
push edi
call fcn.0045e94d
mov esi, eax
push 1
add esi, 2
push 0x4921d4
push esi
call fcn.0045e9cf
add esp, 0x14
test eax, eax
je 0x43f820
add dword [ebp + 0x54], ebx
push 1
add esi, 2
push 0x4921d4
push esi
call fcn.0045e9cf
add esp, 0xc
test eax, eax
jne 0x43f806
lea edi, [esi + 2]
jmp 0x43f917
add dword [ebp + 0x54], ebx
cmp word [edi], 0x40
mov eax, dword [ebp + 0x54]
jne 0x43f905
movzx eax, word [edi + 2]
mov dword [esp + 0x2c], 0
cmp ax, 0x6d
jne 0x43f860
cmp ebx, 0x16
jge 0x43f900
mov ebx, 0x16
add edi, 4
jmp 0x43f917
cmp ax, 0x6c
jne 0x43f87c
cmp ebx, 0x20
jge 0x43f900
mov ebx, 0x20
add edi, 4
jmp 0x43f917
cmp ax, 0x73
jne 0x43f894
cmp ebx, 0x14
jge 0x43f900
mov ebx, 0x14
add edi, 4
jmp 0x43f917
cmp ax, 0x69
jne 0x43f8a9
cmp ebx, 0x12
jge 0x43f900
mov ebx, 0x12
add edi, 4
jmp 0x43f917
cmp ax, 0x72
jne 0x43f8be
cmp ebx, 0xc
jge 0x43f900
mov ebx, 0xc
add edi, 4
jmp 0x43f917
cmp ax, 0x79
jne 0x43f8d3
cmp ebx, 0x10
jge 0x43f900
mov ebx, 0x10
add edi, 4
jmp 0x43f917
cmp ax, 0x7a
jne 0x43f8e8
cmp ebx, 0xa
jge 0x43f900
mov ebx, 0xa
add edi, 4
jmp 0x43f917
cmp ax, 0x77
jne 0x43f900
cmp ebx, 0x16
jge 0x43f8f8
mov ebx, 0x16
mov dword [esp + 0x2c], 1
add edi, 4
jmp 0x43f917
cmp dword [esp + 0x2c], 0
je 0x43f911
add eax, ebx
mov dword [ebp + 0x54], eax
add dword [ebp + 0x54], ebx
add edi, 2
cmp word [edi], 0
jne 0x43f6f5
mov eax, dword [esp + 0x3c]
cmp eax, dword [ebp + 0x54]
jle 0x43f92f
mov dword [ebp + 0x54], eax
jmp 0x43f937
mov dword [esp + 0x3c], 0
mov ecx, dword [ebp + 0xac]
mov eax, dword [ebp + 0x58]
mov esi, dword [esp + 0x54]
mov edx, dword [ebp + 0x54]
push 1
push ecx
add eax, 0xc
push esi
push eax
mov eax, dword [0x4c0874]
mov ecx, dword [eax + 0xfc]
add edx, 2
push edx
call fcn.0044c2b0
mov edi, dword [esp + 0x64]
mov ecx, edi
sub ecx, esi
mov dword [edi], eax
mov eax, esi
lea edx, [ecx + 8]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x43f972
mov eax, dword [edi]
test eax, eax
je 0x43f9cb
mov edx, dword [0x4c0874]
mov ecx, dword [edx + 0xfc]
push eax
call fcn.0044b000
push 0
push 0
mov esi, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x4c]
lea ecx, [esp + 0x64]
push ecx
push 0
push esi
mov dword [esp + 0xa4], esi
call edx
test eax, eax
jge 0x43f9d2
mov eax, dword [esi]
mov ecx, dword [eax + 0x50]
push 0
push esi
call ecx
push str.FONT:
call fcn.0045e4b1
add esp, 4
xor eax, eax
jmp 0x440510
mov edx, dword [0x4c086c]
push edx
mov dword [esp + 0x28], 2
call dword [0x48b2b8]
mov esi, dword [0x48b040]
mov ebx, eax
mov eax, dword [ebp + 4]
push eax
push ebx
mov dword [esp + 0x34], ebx
call esi
lea ecx, [esp + 0x98]
push ecx
mov edi, eax
push ebx
mov dword [esp + 0x1c], edi
call dword [0x48b03c]
mov eax, dword [ebp + 0x5c]
mov dword [esp + 0x1c], eax
cmp eax, 0x16
je 0x43faf4
push edi
push ebx
call esi
mov edx, dword [0x4c086c]
push ebx
push edx
call dword [0x48b2ac]
mov eax, dword [0x4c086c]
push eax
call dword [0x48b2b8]
mov ebx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x5c]
cmp eax, 0x20
jne 0x43fa5f
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
call esi
mov dword [esp + 0x1c], 0x20
jmp 0x43fae1
cmp eax, 0x14
jne 0x43fa75
mov edx, dword [ebp + 0xc]
push edx
push ebx
call esi
mov dword [esp + 0x1c], 0x14
jmp 0x43fae1
cmp eax, 0x12
jne 0x43fa8b
mov eax, dword [ebp + 0x10]
push eax
push ebx
call esi
mov dword [esp + 0x1c], 0x12
jmp 0x43fae1
cmp eax, 0xc
jne 0x43faa1
mov ecx, dword [ebp + 0x14]
push ecx
push ebx
call esi
mov dword [esp + 0x1c], 0xc
jmp 0x43fae1
cmp eax, 0x16
jne 0x43fab7
mov edx, dword [ebp + 8]
push edx
push ebx
call esi
mov dword [esp + 0x1c], 0x16
jmp 0x43fae1
cmp eax, 0x10
jne 0x43facd
mov eax, dword [ebp + 0x1c]
push eax
push ebx
call esi
mov dword [esp + 0x1c], 0x10
jmp 0x43fae1
cmp eax, 0xa
jne 0x43fae5
mov ecx, dword [ebp + 0x20]
push ecx
push ebx
call esi
mov dword [esp + 0x1c], 0xa
mov dword [esp + 0x14], eax
lea edx, [esp + 0x98]
push edx
push ebx
call dword [0x48b03c]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
lea esp, [esp]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x43fb00
lea eax, [esp + 0x4e8]
mov dword [esp + 0x28], eax
cmp word [esp + 0x4e8], cx
je 0x44043d
jmp 0x43fb30
mov edi, dword [esp + 0x28]
push 1
push 0x4921dc
push edi
call fcn.0045e9cf
add esp, 0xc
test eax, eax
jne 0x43fcf4
push 0x208
push eax
lea ecx, [esp + 0x2e8]
push ecx
mov dword [esp + 0x4c], 1
call fcn.0045ab70
push 0x208
lea edx, [esp + 0xe8]
push 0
push edx
call fcn.0045ab70
add esp, 0x18
xor eax, eax
movzx ecx, word [eax + 0x48b620]
mov word [esp + eax + 0x2e0], cx
add eax, 2
test cx, cx
jne 0x43fb80
xor eax, eax
lea esp, [esp]
movzx ecx, word [eax + 0x4921cc]
mov word [esp + eax + 0xd8], cx
add eax, 2
test cx, cx
jne 0x43fba0
mov esi, 2
push esi
add edi, 4
push 0x4921d4
push edi
mov dword [esp + 0x34], edi
call fcn.0045e9cf
add esp, 0xc
test eax, eax
je 0x43fc32
cmp dword [esp + 0x40], 0
je 0x43fc0b
mov ax, word [edi]
push 2
add edi, 2
push 0x4921d8
push edi
mov word [esp + esi*2 + 0x2ec], ax
call fcn.0045e9cf
add esp, 0xc
test eax, eax
jne 0x43fc19
mov dword [esp + 0x40], eax
lea esi, [eax + 2]
add edi, 4
jmp 0x43fc1a
mov cx, word [edi]
mov word [esp + esi*2 + 0xd8], cx
add edi, 2
inc esi
push 2
push 0x4921d4
push edi
call fcn.0045e9cf
add esp, 0xc
test eax, eax
jne 0x43fbd6
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebp + 0x48]
lea edx, [esp + 0xd8]
push edx
push eax
mov eax, dword [esp + 0x68]
push 0xc
push ecx
mov ecx, dword [esp + 0x6c]
lea edx, [esp + 0x2f0]
push edx
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x3c]
push ecx
push edx
sub esp, 0x38
mov edi, esp
push ebx
mov ecx, 0xe
lea esi, [esp + 0xf4]
push 1
rep movsd dword es:[edi], dword [esi]
push eax
mov ecx, ebp
call fcn.0043dd00
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 0x48]
push 0
push ecx
mov ecx, dword [esp + 0x68]
push 0x16
push edx
mov edx, dword [esp + 0x6c]
lea eax, [esp + 0xe8]
push eax
mov eax, dword [esp + 0x28]
push ecx
push edx
push eax
sub esp, 0x38
mov edi, esp
push ebx
mov ecx, 0xe
lea esi, [esp + 0xf4]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x80]
push 0xa
push ecx
mov ecx, ebp
call fcn.0043dd00
lea eax, [esp + 0xd8]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43fcd1
sub eax, edx
sar eax, 1
add eax, 0xfffffffe
imul eax, eax, 0xb
add dword [esp + 0x24], eax
add dword [esp + 0x28], 4
jmp 0x44042f
movzx eax, word [edi]
cmp ax, 0x40
jne 0x43ff70
cmp word [edi + 2], 0x63
jne 0x43fe6b
movzx esi, word [edi + 4]
cmp si, 0x72
jne 0x43fd26
push 0
push 0
push 0xff
mov ecx, ebp
call fcn.0043d4c0
cmp si, 0x67
jne 0x43fd3c
push 0
push 0xff
push 0
mov ecx, ebp
call fcn.0043d4c0
cmp si, 0x62
jne 0x43fd52
push 0xff
push 0
push 0
mov ecx, ebp
call fcn.0043d4c0
cmp si, 0x77
jne 0x43fd6e
push 0xff
push 0xff
push 0xff
mov ecx, ebp
call fcn.0043d4c0
cmp si, 0x6b
jne 0x43fd81
push 0
push 0
push 0
mov ecx, ebp
call fcn.0043d4c0
movzx edx, byte [edi + 4]
push edx
call fcn.0045a9bd
add esp, 4
test eax, eax
je 0x43fe06
movzx eax, byte [edi + 6]
push eax
call fcn.0045a9bd
add esp, 4
test eax, eax
je 0x43fe06
mov cx, word [edi + 4]
mov dx, word [edi + 6]
mov word [esp + 0xd0], cx
lea ecx, [esp + 0xd0]
xor eax, eax
push ecx
mov word [esp + 0xd6], dx
mov word [esp + 0xd8], ax
call fcn.0045e9c4
movzx edx, byte [eax*4 + 0x4b31b2]
movzx ecx, byte [eax*4 + 0x4b31b0]
add esp, 4
push edx
movzx edx, byte [eax*4 + 0x4b31b1]
push ecx
push edx
mov ecx, ebp
call fcn.0043d4c0
add edi, 2
add edi, 6
mov dword [esp + 0x28], edi
jmp 0x44042f
movzx eax, byte [edi + 4]
push eax
call fcn.0045a9bd
add esp, 4
test eax, eax
je 0x43fe5f
mov cx, word [edi + 4]
lea eax, [esp + 0xd0]
xor edx, edx
push eax
mov word [esp + 0xd4], cx
mov word [esp + 0xd6], dx
call fcn.0045e9c4
movzx ecx, byte [eax*4 + 0x4b31b2]
movzx edx, byte [eax*4 + 0x4b31b0]
movzx eax, byte [eax*4 + 0x4b31b1]
add esp, 4
push ecx
push edx
push eax
mov ecx, ebp
call fcn.0043d4c0
add edi, 6
mov dword [esp + 0x28], edi
jmp 0x44042f
mov ecx, dword [esp + 0x14]
mov esi, dword [0x48b040]
push ecx
push ebx
call esi
mov edx, dword [0x4c086c]
push ebx
push edx
call dword [0x48b2ac]
mov eax, dword [0x4c086c]
push eax
call dword [0x48b2b8]
mov ebx, eax
movzx eax, word [edi + 2]
mov dword [esp + 0x2c], ebx
cmp ax, 0x6c
jne 0x43feb8
mov ecx, dword [ebp + 0x18]
push ecx
push ebx
call esi
mov dword [esp + 0x14], eax
mov eax, 0x20
jmp 0x43ff4e
cmp ax, 0x73
jne 0x43fed3
mov edx, dword [ebp + 0xc]
push edx
push ebx
call esi
mov dword [esp + 0x14], eax
mov eax, 0x14
jmp 0x43ff4e
cmp ax, 0x69
jne 0x43feeb
mov eax, dword [ebp + 0x10]
push eax
push ebx
call esi
mov dword [esp + 0x14], eax
mov eax, 0x12
jmp 0x43ff4e
cmp ax, 0x72
jne 0x43ff03
mov ecx, dword [ebp + 0x14]
push ecx
push ebx
call esi
mov dword [esp + 0x14], eax
mov eax, 0xc
jmp 0x43ff4e
cmp ax, 0x77
jne 0x43ff0e
mov edx, dword [ebp + 8]
jmp 0x43ff41
cmp ax, 0x79
jne 0x43ff26
mov eax, dword [ebp + 0x1c]
push eax
push ebx
call esi
mov dword [esp + 0x14], eax
mov eax, 0x10
jmp 0x43ff4e
cmp ax, 0x7a
jne 0x43ff3e
mov ecx, dword [ebp + 0x20]
push ecx
push ebx
call esi
mov dword [esp + 0x14], eax
mov eax, 0xa
jmp 0x43ff4e
mov edx, dword [ebp + 4]
push edx
push ebx
call esi
mov dword [esp + 0x14], eax
mov eax, 0x16
mov dword [esp + 0x1c], eax
mov dword [ebp + 0x5c], eax
lea eax, [esp + 0x98]
push eax
push ebx
call dword [0x48b03c]
add edi, 4
mov dword [esp + 0x28], edi
jmp 0x44042f
movzx esi, ax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x7c], eax
xor eax, eax
xor ecx, ecx
mov word [esp + 0x84], ax
mov word [esp + 0x8a], ax
mov edx, 1
mov word [esp + 0x82], dx
lea eax, [esp + 0x80]
push eax
push ecx
xor edx, edx
push ecx
mov word [esp + 0x94], dx
mov word [esp + 0x8c], cx
mov word [esp + 0x92], cx
mov word [esp + 0x98], cx
mov edx, 1
lea ecx, [esp + 0x74]
push ecx
mov word [esp + 0x9e], dx
mov edx, dword [ebp + 0x60]
push edx
and esi, 0xffff
push esi
add edi, 2
push ebx
mov dword [esp + 0x44], edi
call dword [0x48b044]
mov edi, eax
push edi
push 0x40
call dword [0x48b188]
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x440090
mov eax, dword [0x4c086c]
push ebx
push eax
call dword [0x48b2ac]
mov ecx, dword [0x4c086c]
push ecx
call dword [0x48b2b8]
mov edx, dword [ebp + 4]
mov ebx, eax
push edx
push ebx
mov dword [esp + 0x34], ebx
call dword [0x48b040]
lea ecx, [esp + 0x98]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x5c]
push ecx
push ebx
mov dword [esp + 0x24], eax
call dword [0x48b03c]
mov ecx, dword [ebp + 0x60]
lea edx, [esp + 0x80]
push edx
push 0
push 0
lea eax, [esp + 0x74]
push eax
push ecx
push esi
push ebx
call dword [0x48b044]
mov edi, eax
push edi
push 0x40
call dword [0x48b188]
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x440090
mov edx, dword [esp + 0x50]
add dword [esp + 0x24], edx
jmp 0x44042f
lea ecx, [esp + 0x80]
push ecx
push eax
mov eax, dword [ebp + 0x60]
push edi
lea edx, [esp + 0x74]
push edx
push eax
push esi
push ebx
call dword [0x48b044]
mov eax, dword [esp + 0x68]
add eax, 3
and eax, 0xfffc
cmp dword [esp + 0x6c], 0
mov dword [esp + 0x54], eax
mov dword [esp + 0x34], 0
jbe 0x440418
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x40], ecx
jmp 0x4400e0
cmp dword [esp + 0x68], 0
mov dword [esp + 0x38], 0
jbe 0x4403fd
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
movzx eax, byte [ecx + edx]
imul eax, eax, 0xff
cdq
idiv dword [ebp + 0x64]
mov edx, dword [ebp + 0x58]
mov ebx, dword [ebp + 0x48]
mov byte [esp + 0x12], al
mov eax, dword [esp + 0x9c]
sub eax, dword [esp + 0x74]
sub eax, dword [esp + 0x7c]
add eax, dword [esp + 0x34]
lea esi, [eax + edx + 0xa]
mov eax, dword [esp + 0x5c]
cdq
and edx, 3
add eax, edx
movsx edx, word [esp + 0x78]
sar eax, 2
imul esi, eax
mov eax, dword [esp + 0x50]
add esi, dword [esp + 0x70]
sub eax, edx
cdq
sub eax, edx
sar eax, 1
add eax, esi
mov esi, dword [ebp + 0x4c]
add eax, ecx
add eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x60]
lea edi, [ecx + eax*4]
mov eax, dword [edi]
mov ecx, eax
shr ecx, 0x18
mov byte [esp + 0x1b], cl
mov ecx, eax
shr ecx, 0x10
shr eax, 8
mov edx, esi
sar edx, 8
mov byte [esp + 0x13], cl
mov byte [esp + 0x33], al
mov ecx, ebx
mov eax, esi
mov byte [esp + 0x22], dl
mov dl, byte [esp + 0x12]
sar ecx, 0x10
sar ebx, 8
sar eax, 0x10
mov dword [esp + 0x94], edi
mov byte [esp + 0x23], dl
test dl, dl
jbe 0x440489
movzx eax, al
mov dword [esp + 0x48], eax
movzx edi, dl
movzx ecx, cl
imul ecx, edi
mov esi, 0xff
sub esi, edi
imul eax, esi
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x1b], al
movzx eax, byte [esp + 0x22]
imul eax, esi
movzx ecx, bl
imul ecx, edi
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
movzx ecx, byte [ebp + 0x48]
sar edx, 7
imul ecx, edi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x13], al
movzx eax, byte [ebp + 0x4c]
mov dword [esp + 0x44], eax
imul eax, esi
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp + 0xa4], 0
mov byte [esp + 0x12], al
je 0x4403bc
mov byte [esp + 0x23], 0xff
mov dword [esp + 0x58], 0
jmp 0x440250
cmp dword [esp + 0x58], 8
ja case.default.0x44025f
mov edx, dword [esp + 0x58]
jmp dword [edx*4 + 0x44052c]
or esi, 0xffffffff
or ecx, esi
jmp 0x4402aa
xor esi, esi
or ecx, 0xffffffff
jmp 0x4402aa
mov esi, 1
or ecx, 0xffffffff
jmp 0x4402aa
or esi, 0xffffffff
xor ecx, ecx
jmp 0x4402aa
xor esi, esi
xor ecx, ecx
jmp 0x4402aa
mov esi, 1
xor ecx, ecx
jmp 0x4402aa
or esi, 0xffffffff
lea ecx, [esi + 2]
jmp 0x4402aa
xor esi, esi
lea ecx, [esi + 1]
jmp 0x4402aa
mov esi, 1
mov ecx, esi
mov edx, dword [esp + 0x38]
test edx, edx
ja 0x4402b7
cmp esi, 0xffffffff
je 0x4402c4
mov eax, dword [esp + 0x34]
test eax, eax
ja 0x4402c8
cmp ecx, 0xffffffff
jne 0x4402c8
xor ebx, ebx
jmp 0x44030e
mov ebx, dword [esp + 0x68]
dec ebx
cmp edx, ebx
jb 0x4402d6
cmp esi, 1
je 0x4402e4
mov edx, dword [esp + 0x6c]
dec edx
cmp eax, edx
jb 0x4402e8
cmp ecx, 1
jne 0x4402e8
xor ebx, ebx
jmp 0x44030e
mov eax, dword [esp + 0x34]
lea edx, [ecx + eax]
imul edx, dword [esp + 0x54]
mov eax, dword [esp + 0x4c]
add edx, esi
add edx, dword [esp + 0x38]
movzx eax, byte [edx + eax]
imul eax, eax, 0xff
cdq
idiv dword [ebp + 0x64]
mov ebx, eax
sub ecx, dword [esp + 0x74]
mov edx, dword [ebp + 0x58]
sub ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x5c]
add ecx, dword [esp + 0x9c]
add ecx, dword [esp + 0x34]
lea ecx, [ecx + edx + 0xa]
cdq
and edx, 3
add eax, edx
movsx edx, word [esp + 0x78]
sar eax, 2
imul ecx, eax
mov eax, dword [esp + 0x50]
sub eax, edx
cdq
sub eax, edx
sar eax, 1
add ecx, esi
add eax, ecx
add eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x60]
add eax, dword [esp + 0x38]
add eax, dword [esp + 0x24]
lea ecx, [ecx + eax*4]
test ebx, ebx
jne case.default.0x44025f
mov eax, dword [ecx]
mov edx, eax
shr edx, 0x18
cmp edx, edi
jbe 0x44038e
mov esi, dword [esp + 0x48]
movzx edx, byte [esp + 0x22]
shl esi, 8
or esi, edx
shl esi, 8
and eax, 0xff000000
or esi, eax
or esi, dword [esp + 0x44]
mov dword [ecx], esi
jmp case.default.0x44025f
movzx eax, byte [esp + 0x22]
mov edx, edi
shl edx, 8
or edx, dword [esp + 0x48]
shl edx, 8
or edx, eax
shl edx, 8
or edx, dword [esp + 0x44]
mov dword [ecx], edx
mov eax, dword [esp + 0x58]
inc eax
cmp eax, 9
mov dword [esp + 0x58], eax
jl 0x440250
mov cl, byte [esp + 0x1b]
movzx edx, byte [esp + 0x23]
shl edx, 8
movzx eax, cl
movzx ecx, byte [esp + 0x13]
or edx, eax
movzx eax, byte [esp + 0x12]
shl edx, 8
or edx, ecx
mov ecx, dword [esp + 0x94]
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x38]
inc eax
mov dword [ecx], edx
mov dword [esp + 0x38], eax
cmp eax, dword [esp + 0x68]
jb 0x4400f3
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x54]
add dword [esp + 0x40], edx
inc eax
mov dword [esp + 0x34], eax
cmp eax, dword [esp + 0x6c]
jb 0x4400e0
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
add dword [esp + 0x24], eax
push ecx
call dword [0x48b18c]
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
cmp word [edx], 0
jne 0x43fb30
cmp dword [esp + 0x1c], 0x16
mov esi, dword [0x48b040]
je 0x4404bc
mov eax, dword [esp + 0x14]
push eax
push ebx
call esi
mov ecx, dword [0x4c086c]
push ebx
push ecx
call dword [0x48b2ac]
mov edx, dword [0x4c086c]
push edx
call dword [0x48b2b8]
mov ebx, eax
mov eax, dword [ebp + 4]
push eax
push ebx
call esi
lea ecx, [esp + 0x98]
push ecx
push ebx
mov edi, eax
call dword [0x48b03c]
jmp 0x4404c0
mov al, byte [esp + 0x1b]
test al, al
je 0x4404ac
mov dl, byte [edi]
mov cl, byte [esp + 0x13]
mov byte [esp + 0x23], al
mov al, byte [esp + 0x33]
mov byte [esp + 0x13], al
mov byte [esp + 0x12], dl
jmp 0x4403c0
mov al, byte [ebp + 0x48]
mov byte [esp + 0x13], bl
mov byte [esp + 0x12], al
jmp 0x4403c0
mov edi, dword [esp + 0x14]
push edi
push ebx
call esi
mov edx, dword [0x4c086c]
push ebx
push edx
call dword [0x48b2ac]
mov eax, dword [esp + 0x90]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x50]
push 0
push eax
call edx
mov eax, dword [ebp + 0xa8]
test eax, eax
jle 0x44050a
mov ecx, dword [ebp + 0x4c]
mov edx, dword [esp + 0x64]
push ecx
mov ecx, dword [0x4c0874]
mov ecx, dword [ecx + 0xfc]
push eax
mov eax, dword [edx]
push eax
call fcn.0044b460
mov edx, dword [esp + 0x64]
mov eax, dword [edx]
mov ecx, dword [esp + 0x6f0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0045ab2a
add esp, 0x6e4
ret 0xc