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

Disassembly:
sub esp, 0x1d4
mov ecx, dword [esp + 0x1d8]
mov eax, dword [ecx + 0x90]
mov ecx, dword [ecx + 0x30]
cmp byte [ecx + eax - 0x80], 0x54
mov dword [esp + 8], eax
mov dword [esp], ecx
mov edx, 0x80
jne 0x422dbc
cmp byte [ecx + eax - 0x7f], 0x41
jne 0x422dbc
cmp byte [ecx + eax - 0x7e], 0x47
jne 0x422dbc
sub ecx, edx
mov dword [esp], ecx
cmp byte [eax], 0x49
push esi
push edi
jne 0x422e0b
cmp byte [eax + 1], 0x44
jne 0x422e0b
cmp byte [eax + 2], 0x33
jne 0x422e0b
movzx esi, byte [eax + 6]
movzx edi, byte [eax + 7]
shl esi, 7
add esi, edi
movzx edi, byte [eax + 8]
shl esi, 7
add esi, edi
movzx edi, byte [eax + 9]
shl esi, 7
cmp byte [eax + 3], 4
lea esi, [esi + edi + 0xa]
jb 0x422dff
test byte [eax + 5], 0x10
je 0x422dff
add esi, 0xa
add eax, esi
sub ecx, esi
mov dword [esp + 0x10], eax
mov dword [esp + 8], ecx
cmp byte [eax], 0xff
jne 0x423366
mov al, byte [eax + 1]
and al, 0xe0
cmp al, 0xe0
jne 0x423366
xor edi, edi
push ebx
mov ebx, 0x20
mov esi, 0x40
mov ecx, 0x60
mov eax, 0xa0
push ebp
mov ebp, 0x70
mov dword [esp + 0x24], 2
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], 0xac44
mov dword [esp + 0x38], 0xbb80
mov dword [esp + 0x3c], 0x7d00
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], 0x5622
mov dword [esp + 0x48], 0x5dc0
mov dword [esp + 0x4c], 0x3e80
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], 0x2b11
mov dword [esp + 0x58], 0x2ee0
mov dword [esp + 0x5c], 0x1f40
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], 0xc0
mov dword [esp + 0x80], 0xe0
mov dword [esp + 0x84], 0x100
mov dword [esp + 0x88], 0x120
mov dword [esp + 0x8c], 0x140
mov dword [esp + 0x90], 0x160
mov dword [esp + 0x94], 0x180
mov dword [esp + 0x98], 0x1a0
mov dword [esp + 0x9c], 0x1c0
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], 0x30
mov dword [esp + 0xb0], 0x38
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb8], 0x50
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], ebp
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], 0xc0
mov dword [esp + 0xd0], 0xe0
mov dword [esp + 0xd4], 0x100
mov dword [esp + 0xd8], 0x140
mov dword [esp + 0xdc], 0x180
mov dword [esp + 0xe0], edi
mov dword [esp + 0xe4], edi
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], 0x28
mov dword [esp + 0xf0], 0x30
mov dword [esp + 0xf4], 0x38
mov dword [esp + 0xf8], esi
mov dword [esp + 0xfc], 0x50
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], ebp
mov dword [esp + 0x108], edx
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], 0xc0
mov dword [esp + 0x114], 0xe0
mov dword [esp + 0x118], 0x100
mov dword [esp + 0x11c], 0x140
mov dword [esp + 0x120], edi
mov dword [esp + 0x124], edi
mov dword [esp + 0x128], ebx
mov dword [esp + 0x12c], 0x30
mov dword [esp + 0x130], 0x38
mov dword [esp + 0x134], esi
mov dword [esp + 0x138], 0x50
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], ebp
mov dword [esp + 0x144], edx
mov dword [esp + 0x190], ebp
mov dword [esp + 0x1d0], ebp
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x14c], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1dc], eax
movzx eax, byte [ebp + 1]
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x1cc], ecx
mov ecx, eax
shr ecx, 3
and ecx, 3
mov ecx, dword [esp + ecx*4 + 0x24]
cmp ecx, edi
mov dword [esp + 0x148], 0x90
mov dword [esp + 0x150], 0xb0
mov dword [esp + 0x154], 0xc0
mov dword [esp + 0x158], 0xe0
mov dword [esp + 0x15c], 0x100
mov dword [esp + 0x160], edi
mov dword [esp + 0x164], edi
mov dword [esp + 0x168], 8
mov dword [esp + 0x16c], 0x10
mov dword [esp + 0x170], 0x18
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], 0x28
mov dword [esp + 0x17c], 0x30
mov dword [esp + 0x180], 0x38
mov dword [esp + 0x184], esi
mov dword [esp + 0x188], 0x50
mov dword [esp + 0x194], edx
mov dword [esp + 0x198], 0x90
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x1a4], edi
mov dword [esp + 0x1a8], 8
mov dword [esp + 0x1ac], 0x10
mov dword [esp + 0x1b0], 0x18
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1b8], 0x28
mov dword [esp + 0x1bc], 0x30
mov dword [esp + 0x1c0], 0x38
mov dword [esp + 0x1c4], esi
mov dword [esp + 0x1c8], 0x50
mov dword [esp + 0x1d4], edx
mov dword [esp + 0x1d8], 0x90
mov dword [esp + 0x1e0], edi
jl 0x42325e
movzx ebx, byte [ebp + 2]
shr eax, 1
and eax, 3
mov esi, 3
sub esi, eax
xor eax, eax
cmp ecx, edi
setne al
lea edx, [esi + eax*2]
add edx, eax
mov eax, ebx
shr eax, 4
shl edx, 4
add edx, eax
mov eax, dword [esp + edx*4 + 0x64]
mov dword [esp + 0x20], eax
cmp eax, edi
je 0x42325e
mov edx, ebx
shr edx, 2
and edx, 3
lea ecx, [edx + ecx*4]
mov ecx, dword [esp + ecx*4 + 0x34]
mov dword [esp + 0x14], ecx
cmp ecx, edi
jne 0x42326d
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x1d4
ret 4
mov dl, byte [ebp + 3]
shr ebx, 1
and dl, 0xc0
xor ecx, ecx
and ebx, 1
cmp dl, 0xc0
setne cl
inc ecx
mov dword [esp + 0x1c], ecx
cmp esi, edi
jne 0x42329e
imul eax, eax, 0x2ee0
cdq
idiv dword [esp + 0x14]
mov ebp, eax
add ebp, ebx
add ebp, ebp
add ebp, ebp
jmp 0x4232ad
imul eax, eax, 0x23280
cdq
idiv dword [esp + 0x14]
mov ebp, eax
add ebp, ebx
push 0x1e
call fcn.00423abc
mov esi, eax
xor eax, eax
mov dword [esi], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x18], eax
mov ax, word [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov word [esi + 2], ax
mov eax, dword [esp + 0x24]
imul eax, eax, 0x3e8
mov edx, 0x55
mov word [esi], dx
cdq
mov dword [esi + 4], ecx
and edx, 7
add eax, edx
sar eax, 3
mov dword [esi + 8], eax
xor eax, eax
mov word [esi + 0xe], ax
mov ecx, 0xc
mov word [esi + 0x10], cx
add esp, 4
mov edx, 1
neg ebx
sbb ebx, ebx
mov eax, edx
mov word [esi + 0x1a], ax
mov eax, dword [esp + 0x1e8]
mov ecx, 0x571
mov word [esi + 0x1c], cx
mov ecx, dword [esp + 0x10]
mov word [esi + 0xc], dx
mov word [esi + 0x12], dx
mov word [esi + 0x18], bp
sub ecx, 4
add ebx, 2
mov dword [esi + 0x14], ebx
mov dword [eax + 0xc], ecx
push ecx
mov ecx, dword [esp + 0x1c]
add ecx, 4
mov edx, esi
mov dword [eax + 8], edi
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], edi
mov dword [eax + 0x10], edi
call fcn.00422d50
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x1d4
ret 4
pop edi
xor eax, eax
pop esi
add esp, 0x1d4
ret 4