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

Disassembly:
sub esp, 0xd78
mov eax, dword [esp + 0xd7c]
mov edx, ecx
mov dword [esp + 0x14], edx
test eax, eax
je 0x4a1b3c
cmp dword [esp + 0xd80], 0xc0
jb 0x4a1b3c
push esi
push edi
mov ecx, 0x30
lea edi, [esp + 0x80]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
cmp dword [esp + 0x80], 0x4d504d49
jne 0x4a1b2f
mov si, word [esp + 0xa2]
mov ecx, 0xf0
cmp si, cx
jae 0x4a1b2f
mov ax, word [esp + 0xa4]
test ax, ax
je 0x4a1b2f
cmp ax, cx
jae 0x4a1b2f
mov cx, word [esp + 0xa0]
test cx, cx
je 0x4a1b2f
movzx edi, word [esp + 0xa6]
movzx eax, ax
push ebx
mov dword [esp + 0x18], eax
movzx ebx, si
add eax, ebx
mov dword [esp + 0x28], edi
add eax, edi
mov dword [esp + 0xc], ebx
push ebp
movzx ebp, cx
lea eax, [eax*4 + 0xc0]
add eax, ebp
cmp eax, dword [esp + 0xd90]
jbe 0x4a0dc4
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0xd78
ret 8
mov eax, dword [esp + 0xb4]
mov dword [edx + 0xe920], 0x20
test al, 8
je 0x4a0de0
or dword [edx + 0xe90c], 0x10
test al, 0x10
je 0x4a0deb
or dword [edx + 0xe90c], 4
test al, 0x20
je 0x4a0df6
or dword [edx + 0xe90c], 8
test al, al
jns 0x4a0e01
or dword [edx + 0xe90c], 1
test eax, 0x1000
je 0x4a0e12
or dword [edx + 0xe90c], 0x8000
lea edi, [edx + 0xe99c]
mov al, byte [esp + 0xb8]
lea esi, [esp + 0x8c]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, edx
mov byte [esi + 0xe9b6], 0
test al, al
je 0x4a0e69
movzx eax, al
add eax, eax
mov dword [esi + 0xe908], eax
jne 0x4a0e53
mov dword [esi + 0xe908], 0x100
cmp dword [esi + 0xe908], 0x100
jbe 0x4a0e69
mov dword [esi + 0xe908], 0x100
mov al, byte [esp + 0xba]
test al, al
je 0x4a0e7d
movzx eax, al
mov dword [esi + 0xe900], eax
mov al, byte [esp + 0xbb]
test al, al
je 0x4a0e91
movzx eax, al
mov dword [esi + 0xe904], eax
movzx eax, byte [esp + 0xb9]
lea ecx, [esi + 0xc1c8]
and eax, 0x7f
xor edi, edi
mov dword [esi + 0xe964], eax
lea ebx, [ebx]
mov dl, byte [esp + edi + 0xc8]
cmp dl, 0xff
je 0x4a0ef8
movzx eax, byte [esp + edi + 0x108]
mov dword [ecx - 4], eax
mov dword [ecx - 8], 0x80
test dl, dl
jns 0x4a0ed8
or dword [ecx], 0x100
movzx edx, dl
and edx, 0x7f
cmp edx, 0x40
ja 0x4a0eed
lea eax, [edx*4]
mov dword [ecx - 8], eax
cmp edx, 0x64
jne 0x4a0ef8
or dword [ecx], 0x800
inc edi
add ecx, 0x24
cmp edi, 0x40
jl 0x4a0eb0
cmp dword [esi + 0xe910], 4
jae 0x4a0f14
mov dword [esi + 0xe910], 4
test byte [esp + 0xb6], 1
je 0x4a0f7e
mov ax, word [esp + 0xbe]
test ax, ax
je 0x4a0f7e
movzx edi, ax
mov eax, dword [esp + 0xd90]
cmp edi, eax
ja 0x4a0f7e
mov ebx, dword [esp + 0xc0]
sub eax, edi
cmp ebx, eax
jae 0x4a0f7a
lea eax, [edi + 1]
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esi + 0xe994], eax
test eax, eax
je 0x4a0f7a
mov ecx, dword [esp + 0xd8c]
push edi
add ecx, ebx
push ecx
push eax
call sub.MSVCRT.dll_memcpy
mov eax, dword [esi + 0xe994]
add esp, 0xc
mov byte [edi + eax], 0
mov ebx, dword [esp + 0x10]
mov eax, ebp
cmp eax, 0x100
jbe 0x4a0f8c
mov eax, 0x100
push eax
mov eax, dword [esp + 0xd90]
add eax, 0xc0
push eax
lea eax, [esi + 0xd060]
push eax
call sub.MSVCRT.dll_memcpy
push 0x3c0
lea eax, [esp + 0x618]
push 0
push eax
call sub.MSVCRT.dll_memset
mov edi, ebx
add esp, 0x18
cmp edi, 0xf0
jbe 0x4a0fcc
mov edi, 0xf0
mov eax, dword [esp + 0xd8c]
add eax, 0xc0
shl edi, 2
add eax, ebp
push edi
push eax
lea eax, [esp + 0x610]
push eax
call sub.MSVCRT.dll_memcpy
push 0x3c0
lea eax, [esp + 0x9d8]
push 0
lea ebx, [ebx*4 + 0xc0]
push eax
add ebx, ebp
call sub.MSVCRT.dll_memset
mov ebp, dword [esp + 0x34]
add esp, 0x18
mov edi, ebp
cmp edi, 0xf0
jbe 0x4a101f
mov edi, 0xf0
mov eax, dword [esp + 0xd8c]
shl edi, 2
add eax, ebx
push edi
push eax
lea eax, [esp + 0x9d0]
push eax
call sub.MSVCRT.dll_memcpy
push 0x3c0
lea eax, [esp + 0x258]
push 0
push eax
lea ebx, [ebx + ebp*4]
call sub.MSVCRT.dll_memset
movzx ebp, word [esp + 0xc6]
add esp, 0x18
mov edi, ebp
cmp edi, 0xf0
jbe 0x4a106b
mov edi, 0xf0
mov eax, dword [esp + 0xd8c]
shl edi, 2
add eax, ebx
push edi
push eax
lea eax, [esp + 0x250]
push eax
call sub.MSVCRT.dll_memcpy
mov edx, dword [esp + 0xd98]
lea edi, [ebx + ebp*4]
mov ebp, dword [esp + 0xd9c]
lea ecx, [edi + 2]
add esp, 0xc
cmp ecx, ebp
jae 0x4a10b0
movzx eax, word [edi + edx]
mov edi, ecx
lea eax, [edi + eax*8]
cmp eax, ebp
jae 0x4a10b0
mov edi, eax
test byte [esi + 0xe90c], 1
je 0x4a10dd
lea ebx, [edi + 0x1320]
cmp ebx, ebp
jae 0x4a10dd
lea eax, [edi + edx]
push 0x1320
push eax
lea eax, [esi + 0xd160]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov edi, ebx
mov ecx, dword [esp + 0xd8c]
lea eax, [edi + 8]
cmp eax, ebp
jae 0x4a1154
cmp dword [edi + ecx], 0x4d414e50
lea ebx, [edi + ecx]
jne 0x4a1154
mov ebx, dword [ebx + 4]
mov edi, eax
lea ebp, [ebx + edi]
cmp ebp, dword [esp + 0xd90]
ja 0x4a114d
lea eax, [ebx - 0x20]
cmp eax, 0x1de0
ja 0x4a114d
push ebx
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esi + 0xe998], eax
test eax, eax
je 0x4a1144
mov ecx, ebx
shr ecx, 5
mov dword [esi + 0xe990], ecx
mov ecx, dword [esp + 0xd8c]
push ebx
add ecx, edi
push ecx
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0xd8c]
mov edi, ebp
mov ebp, dword [esp + 0xd90]
lea eax, [edi + 8]
mov dword [esi + 0xe910], 4
cmp eax, ebp
jae 0x4a11e9
cmp dword [ecx + edi], 0x4d414e43
jne 0x4a11e9
mov ecx, dword [ecx + edi + 4]
mov edi, eax
lea ebp, [ecx + edi]
cmp ebp, dword [esp + 0xd90]
ja 0x4a11e2
cmp ecx, 0x500
ja 0x4a11e2
mov eax, 0xcccccccd
mul ecx
mov ebx, edx
shr ebx, 4
cmp ebx, 4
jbe 0x4a11a3
mov dword [esi + 0xe910], ebx
test ebx, ebx
je 0x4a11e0
mov edx, dword [esp + 0xd8c]
lea ecx, [esi + 0xc1e3]
add edx, edi
mov eax, dword [edx]
lea edx, [edx + 0x14]
mov dword [ecx - 0x13], eax
lea ecx, [ecx + 0x24]
mov eax, dword [edx - 0x10]
mov dword [ecx - 0x33], eax
mov eax, dword [edx - 0xc]
mov dword [ecx - 0x2f], eax
mov eax, dword [edx - 8]
mov dword [ecx - 0x2b], eax
mov eax, dword [edx - 4]
mov dword [ecx - 0x27], eax
mov byte [ecx - 0x24], 0
dec ebx
jne 0x4a11b6
mov edi, ebp
mov ebp, dword [esp + 0xd90]
lea eax, [edi + 8]
cmp eax, ebp
jae 0x4a1206
mov eax, ebp
mov ecx, esi
sub eax, edi
push eax
mov eax, dword [esp + 0xd90]
add eax, edi
push eax
call fcn.004a0b80
movzx eax, word [esp + 0xae]
cmp eax, 0xf0
jbe 0x4a121e
mov eax, 0xf0
mov dword [esp + 0x2c], eax
xor ebx, ebx
mov dword [esp + 0x14], ebx
test eax, eax
je 0x4a1342
lea esp, [esp]
push 0x40
lea eax, [esp + 0x20c]
push 0
push eax
call sub.MSVCRT.dll_memset
mov ecx, dword [esp + ebx*4 + 0x254]
add esp, 0xc
test ecx, ecx
je 0x4a1333
lea eax, [ebp - 4]
cmp ecx, eax
jae 0x4a1333
mov edx, dword [esp + 0xd8c]
add edx, ecx
movzx eax, word [edx + 2]
movzx edi, word [edx]
mov dword [esp + 0x28], eax
add eax, 0xfffffffc
cmp eax, 0xfc
ja 0x4a1333
lea eax, [edi + 8]
cmp eax, ebp
ja 0x4a1333
mov eax, ebp
sub eax, edi
sub eax, 8
cmp ecx, eax
ja 0x4a1333
xor ecx, ecx
lea ebx, [edx + 8]
xor ebp, ebp
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x28], ecx
jbe 0x4a1328
nop
cmp ecx, edi
jae 0x4a1328
mov al, byte [ebx + ecx]
inc ecx
test al, al
jne 0x4a12bf
inc ebp
jmp 0x4a1322
movzx edx, al
and edx, 0x7f
je 0x4a12cb
dec edx
and edx, 0x3f
test al, al
jns 0x4a12de
cmp ecx, edi
jae 0x4a1328
mov al, byte [ebx + ecx]
inc ecx
mov byte [esp + edx + 0x208], al
mov bl, byte [esp + edx + 0x208]
test bl, 0xf
je 0x4a1300
cmp edx, dword [esi + 0xe910]
jb 0x4a1300
cmp edx, 0x40
jae 0x4a1300
lea eax, [edx + 1]
mov dword [esi + 0xe910], eax
test bl, 1
je 0x4a1306
inc ecx
test bl, 2
je 0x4a130c
inc ecx
test bl, 4
je 0x4a1312
inc ecx
test bl, 8
je 0x4a131a
add ecx, 2
cmp ecx, edi
jae 0x4a1328
mov ebx, dword [esp + 0x20]
cmp ebp, dword [esp + 0x28]
jb 0x4a12b0
mov ebp, dword [esp + 0xd90]
mov ebx, dword [esp + 0x14]
inc ebx
mov dword [esp + 0x14], ebx
cmp ebx, dword [esp + 0x2c]
jb 0x4a1230
test byte [esp + 0xb4], 4
mov dword [esi + 0xe928], 0
je 0x4a1360
mov eax, dword [esp + 0x10]
mov dword [esi + 0xe928], eax
cmp dword [esi + 0xe928], 0xf0
jb 0x4a1376
mov dword [esi + 0xe928], 0xef
xor ebx, ebx
cmp dword [esi + 0xe928], ebx
jbe 0x4a13fd
lea eax, [esi + 0xbe04]
mov dword [esp + 0x14], eax
mov edi, edi
mov ebp, dword [esp + ebx*4 + 0x608]
test ebp, ebp
je 0x4a13ef
mov eax, dword [esp + 0xd90]
add eax, 0xfffffdd6
cmp ebp, eax
jae 0x4a13ef
push 0x278
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov edi, eax
add esp, 4
test edi, edi
je 0x4a13ef
mov eax, dword [esp + 0x14]
push 0x278
push 0
push edi
mov dword [eax], edi
call sub.MSVCRT.dll_memset
movzx eax, word [esp + 0xbe]
add esp, 0xc
mov ecx, esi
push eax
mov eax, dword [esp + 0xd90]
push edi
add eax, ebp
push eax
call fcn.004a0230
add dword [esp + 0x14], 4
inc ebx
cmp ebx, dword [esi + 0xe928]
jb 0x4a1390
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0xe924], ecx
cmp ecx, 0xf0
jb 0x4a1419
mov dword [esi + 0xe924], 0xef
xor edx, edx
mov dword [esp + 0x10], edx
lea ebx, [edx + 0x40]
test ecx, ecx
je 0x4a16c1
lea edi, [esi + 0xe9bc]
mov ebx, esi
mov dword [esp + 0x14], edi
lea ebp, [esi + 0x8244]
mov eax, ecx
mov edi, edi
mov ecx, dword [esp + edx*4 + 0x9c8]
test ecx, ecx
je 0x4a16a3
mov eax, dword [esp + 0xd90]
add eax, 0xffffffb0
cmp ecx, eax
ja 0x4a169f
mov esi, dword [esp + 0xd8c]
lea edi, [esp + 0x38]
add esi, ecx
mov ecx, 0x14
rep movsd dword es:[edi], dword [esi]
cmp dword [esp + 0x38], 0x53504d49
jne 0x4a168a
mov eax, dword [esp + 0x3c]
lea edi, [ebp - 4]
mov dword [ebp + 0x26], eax
mov eax, dword [esp + 0x40]
mov dword [ebp + 0x2a], eax
mov eax, dword [esp + 0x44]
mov dword [ebp + 0x2e], eax
xor eax, eax
mov word [ebp + 0x1e], ax
mov dword [edi], eax
mov eax, dword [esp + 0x6c]
mov dword [ebp], eax
mov eax, dword [esp + 0x70]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x78]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x7c]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x74]
mov dword [ebp + 0x14], eax
test eax, eax
jne 0x4a14d3
mov dword [ebp + 0x14], 0x20ab
jmp 0x4a14da
cmp eax, 0x100
jae 0x4a14e1
mov dword [ebp + 0x14], 0x100
mov ecx, dword [esp + 0x48]
mov edx, 0x100
mov eax, ecx
shr eax, 0x18
shl eax, 2
mov word [ebp + 0x1a], ax
cmp ax, dx
jbe 0x4a14ff
mov word [ebp + 0x1a], dx
mov eax, ecx
shr eax, 8
movzx eax, al
mov word [ebp + 0x1c], ax
cmp eax, 0x40
jbe 0x4a1519
mov eax, 0x40
mov word [ebp + 0x1c], ax
shr ecx, 0x10
mov dword [esp + 0x20], ecx
test cl, 0x10
je 0x4a152e
mov eax, 2
mov word [ebp + 0x1e], ax
test cl, 0x20
je 0x4a1538
or word [ebp + 0x1e], 8
test cl, 0x40
je 0x4a1542
or word [ebp + 0x1e], 4
test cl, cl
jns 0x4a154b
or word [ebp + 0x1e], 0x10
mov cl, byte [esp + 0x67]
mov al, cl
and al, 0x7f
movzx eax, al
shl ax, 2
mov word [ebp + 0x18], ax
cmp ax, dx
jbe 0x4a1567
mov word [ebp + 0x18], dx
test cl, cl
jns 0x4a1570
or word [ebp + 0x1e], 0x20
movzx eax, byte [esp + 0x87]
and eax, 7
mov esi, dword [esp + 0x80]
movzx eax, byte [eax + 0x1174398]
mov byte [ebp + 0x22], al
movzx eax, byte [esp + 0x84]
mov byte [ebp + 0x25], al
movzx eax, byte [esp + 0x85]
and al, 0x7f
mov byte [ebp + 0x24], al
movzx eax, byte [esp + 0x86]
add eax, 3
cdq
and edx, 3
add eax, edx
sar eax, 2
mov byte [ebp + 0x23], al
test esi, esi
je 0x4a1686
cmp esi, dword [esp + 0xd90]
jae 0x4a1686
mov eax, dword [esp + 0x68]
test eax, eax
je 0x4a1686
mov dword [edi], eax
cmp eax, 0xf42400
jbe 0x4a15eb
mov dword [edi], 0xf42400
mov dl, byte [esp + 0x66]
mov eax, dword [esp + 0x20]
movzx ecx, dl
not ecx
and ecx, 1
test al, 2
je 0x4a1634
add ecx, 5
test al, 4
je 0x4a1609
or ecx, 8
or word [ebp + 0x1e], 1
test al, 8
je 0x4a1669
mov eax, 0x215
cmp word [esp + 0xb2], ax
jb 0x4a162d
test dl, 4
je 0x4a162d
mov ecx, 0x16
jmp 0x4a1669
mov ecx, 0x14
jmp 0x4a1669
test al, 4
je 0x4a163b
or ecx, 8
cmp dl, 0xff
jne 0x4a1647
mov ecx, 3
jmp 0x4a1669
test al, 8
je 0x4a1669
mov eax, 0x215
cmp word [esp + 0xb2], ax
jb 0x4a1664
mov ecx, 0x12
test dl, 4
jne 0x4a1669
mov ecx, 0x10
mov eax, dword [esp + 0xd90]
sub eax, esi
push eax
mov eax, dword [esp + 0xd90]
add eax, esi
push eax
push ecx
push edi
mov ecx, ebx
call fcn.004960e0
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
lea esi, [esp + 0x4c]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
inc edx
add edi, 0x20
add ebp, 0x40
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edi
cmp edx, eax
jb 0x4a1440
mov esi, ebx
mov ebx, 0x40
xor eax, eax
mov dword [esp + 0x20], eax
cmp dword [esp + 0x2c], eax
jbe 0x4a1ac7
lea ecx, [esi + 0xcac0]
lea edx, [esi + 0xce80]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
lea ebp, [esi + 0xcac0]
jmp 0x4a16f0
mov ecx, dword [esp + eax*4 + 0x248]
test ecx, ecx
je 0x4a1b14
mov eax, dword [esp + 0xd90]
add eax, 0xfffffffc
cmp ecx, eax
jae 0x4a1b14
mov edi, dword [esp + 0xd8c]
add edi, ecx
movzx ebx, word [edi + 2]
movzx edx, word [edi]
mov dword [esp + 0x28], edx
mov dword [esp + 0x34], ebx
lea eax, [ebx - 4]
cmp eax, 0xfc
ja 0x4a1a9d
lea eax, [edx + 8]
cmp eax, dword [esp + 0xd90]
ja 0x4a1a9d
mov eax, dword [esp + 0xd90]
sub eax, edx
sub eax, 8
cmp ecx, eax
ja 0x4a1a9d
mov eax, dword [esp + 0x14]
mov word [eax], bx
push dword [esi + 0xe910]
push ebx
call fcn.00495350
mov ebp, eax
add esp, 8
mov eax, dword [esp + 0x10]
mov dword [eax], ebp
test ebp, ebp
je 0x4a1a99
push 0x180
lea eax, [esp + 0x8c]
push 0
push eax
call sub.MSVCRT.dll_memset
push 0x40
lea eax, [esp + 0x218]
push 0
push eax
call sub.MSVCRT.dll_memset
xor eax, eax
lea edx, [edi + 8]
add esp, 0x18
mov dword [esp + 0x1c], edx
xor ebx, ebx
mov dword [esp + 0x30], eax
cmp dword [esp + 0x34], eax
jbe 0x4a1a99
mov edi, dword [esp + 0x28]
cmp ebx, edi
jae 0x4a1a99
mov cl, byte [edx + ebx]
inc ebx
test cl, cl
jne 0x4a17ed
inc eax
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0xe910]
lea eax, [eax + eax*2]
lea ebp, [ebp + eax*2]
jmp 0x4a1a8b
movzx eax, cl
and eax, 0x7f
je 0x4a17f9
dec eax
and eax, 0x3f
test cl, cl
jns 0x4a1810
cmp ebx, edi
jae 0x4a1a99
mov cl, byte [edx + ebx]
inc ebx
mov byte [esp + eax + 0x208], cl
mov ch, byte [esp + eax + 0x208]
test ch, 0x10
je 0x4a1832
cmp eax, dword [esi + 0xe910]
jae 0x4a1832
lea edx, [eax + eax*2]
mov cl, byte [esp + edx*2 + 0x88]
mov byte [ebp + edx*2], cl
test ch, 0x20
je 0x4a184d
cmp eax, dword [esi + 0xe910]
jae 0x4a184d
lea edx, [eax + eax*2]
mov cl, byte [esp + edx*2 + 0x89]
mov byte [ebp + edx*2 + 1], cl
test ch, 0x40
je 0x4a1873
cmp eax, dword [esi + 0xe910]
jae 0x4a1873
lea edx, [eax + eax*2]
mov cl, byte [esp + edx*2 + 0x8a]
mov byte [ebp + edx*2 + 2], cl
mov cl, byte [esp + edx*2 + 0x8c]
mov byte [ebp + edx*2 + 4], cl
test ch, ch
jns 0x4a1898
cmp eax, dword [esi + 0xe910]
jae 0x4a1898
lea edx, [eax + eax*2]
mov cl, byte [esp + edx*2 + 0x8b]
mov byte [ebp + edx*2 + 3], cl
mov cl, byte [esp + edx*2 + 0x8d]
mov byte [ebp + edx*2 + 5], cl
test ch, 1
je 0x4a18da
cmp ebx, edi
jae 0x4a1a99
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + ebx]
inc ebx
cmp eax, dword [esi + 0xe910]
jae 0x4a18da
cmp edx, 0x80
jae 0x4a18bf
inc edx
lea ecx, [eax + eax*2]
mov byte [esp + eax + 0x38], 1
add ecx, ecx
mov byte [ecx + ebp], dl
mov byte [esp + ecx + 0x88], dl
mov ch, byte [esp + eax + 0x208]
test ch, 2
je 0x4a190f
cmp ebx, edi
jae 0x4a1a99
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + ebx]
inc ebx
cmp eax, dword [esi + 0xe910]
jae 0x4a190f
lea ecx, [eax + eax*2]
add ecx, ecx
mov byte [ecx + ebp + 1], dl
mov byte [esp + ecx + 0x89], dl
mov ch, byte [esp + eax + 0x208]
test ch, 4
je 0x4a1a23
cmp ebx, edi
jae 0x4a1a99
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + ebx]
inc ebx
cmp eax, dword [esi + 0xe910]
jae 0x4a1a23
cmp edx, 0x40
ja 0x4a1947
lea ecx, [eax + eax*2]
mov byte [ebp + ecx*2 + 2], 1
jmp 0x4a19ff
lea ecx, [edx - 0x80]
cmp ecx, 0x40
ja 0x4a195f
lea ecx, [eax + eax*2]
sub dl, 0x80
mov byte [ebp + ecx*2 + 2], 2
jmp 0x4a19ff
cmp edx, 0x4b
jae 0x4a1974
lea ecx, [eax + eax*2]
sub dl, 0x41
mov byte [ebp + ecx*2 + 2], 5
jmp 0x4a19ff
cmp edx, 0x55
jae 0x4a1989
lea ecx, [eax + eax*2]
sub dl, 0x4b
mov byte [ebp + ecx*2 + 2], 6
jmp 0x4a19ff
cmp edx, 0x5f
jae 0x4a199b
lea ecx, [eax + eax*2]
sub dl, 0x55
mov byte [ebp + ecx*2 + 2], 3
jmp 0x4a19ff
cmp edx, 0x69
jae 0x4a19ad
lea ecx, [eax + eax*2]
sub dl, 0x5f
mov byte [ebp + ecx*2 + 2], 4
jmp 0x4a19ff
cmp edx, 0x73
jae 0x4a19bf
lea ecx, [eax + eax*2]
sub dl, 0x69
mov byte [ebp + ecx*2 + 2], 0xd
jmp 0x4a19ff
cmp edx, 0x7d
jae 0x4a19d1
lea ecx, [eax + eax*2]
sub dl, 0x73
mov byte [ebp + ecx*2 + 2], 0xc
jmp 0x4a19ff
lea ecx, [edx - 0xc1]
cmp ecx, 9
ja 0x4a19e9
lea ecx, [eax + eax*2]
add dl, 0x3f
mov byte [ebp + ecx*2 + 2], 0xb
jmp 0x4a19ff
lea ecx, [edx - 0xcb]
cmp ecx, 9
ja 0x4a1a03
lea ecx, [eax + eax*2]
add dl, 0x35
mov byte [ebp + ecx*2 + 2], 7
mov byte [ebp + ecx*2 + 4], dl
mov ch, byte [esp + eax + 0x208]
lea edx, [eax + eax*2]
mov cl, byte [ebp + edx*2 + 2]
mov byte [esp + edx*2 + 0x8a], cl
mov cl, byte [ebp + edx*2 + 4]
mov byte [esp + edx*2 + 0x8c], cl
test ch, 8
je 0x4a1a87
lea ecx, [edi - 2]
cmp ebx, ecx
ja 0x4a1a99
mov edx, dword [esp + 0x1c]
movzx ecx, byte [edx + ebx]
movzx edx, byte [edx + ebx + 1]
add ebx, 2
cmp eax, dword [esi + 0xe910]
jae 0x4a1a87
test ecx, ecx
je 0x4a1a87
lea edi, [eax + eax*2]
lea esi, [edi*2]
add esi, ebp
push 1
push esi
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x2c]
mov byte [esi + 5], dl
call fcn.0049fa60
movzx eax, byte [esi + 3]
mov byte [esp + edi*2 + 0x8b], al
movzx eax, byte [esi + 5]
mov esi, dword [esp + 0x24]
mov byte [esp + edi*2 + 0x8d], al
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x34]
jb 0x4a17c6
mov ebp, dword [esp + 0x10]
mov ebx, 0x40
mov eax, dword [esp + 0x20]
add ebp, 4
mov edx, dword [esp + 0x14]
inc eax
add edx, 2
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ebp
cmp eax, dword [esp + 0x2c]
jb 0x4a16f0
xor eax, eax
lea ecx, [esi + 0xc1c8]
nop
cmp eax, dword [esi + 0xe910]
jb 0x4a1ae5
and dword [ecx], 0xfffffeff
mov dword [ecx - 4], 0x40
inc eax
add ecx, 0x24
cmp eax, 0x40
jb 0x4a1ad0
pop ebp
pop ebx
pop edi
mov dword [esi + 0xe974], 8
mov eax, 1
mov dword [esi + 0xe978], 0xf000
pop esi
add esp, 0xd78
ret 8
mov word [edx], bx
push dword [esi + 0xe910]
push 0x40
call fcn.00495350
add esp, 8
mov dword [ebp], eax
jmp 0x4a1aa2
pop edi
xor eax, eax
pop esi
add esp, 0xd78
ret 8
xor eax, eax
add esp, 0xd78
ret 8