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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x53a5ba
push eax
mov dword fs:[0], esp
sub esp, 0x1b8
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x320]
cmp eax, 8
ja case.default.0x4ee7e0
jmp dword [eax*4 + 0x4ef41c]
mov edi, dword [esi + 0x218]
xor ebx, ebx
and edi, 0xfffffffc
mov dword [esi + 0x218], edi
mov ecx, dword [0x6a9038]
mov eax, edi
cmp dword [ecx + 0xe1c], 0x800000
je 0x4ee9b3
cmp dword [ecx + 0x36c], ebx
jne 0x4ee9b3
cmp word [ecx + 0xe2], bx
jle 0x4ee9b3
or al, 4
lea edi, [esi + 8]
mov dword [esi + 0x218], eax
mov eax, dword [0x6a9038]
add eax, 8
lea ecx, [esp + 0x18]
push eax
push edi
push ecx
mov word [esp + 0x24], bx
mov word [esp + 0x26], bx
mov word [esp + 0x28], bx
call fcn.004e62d0
movsx edx, word [esi + 0x16]
movsx eax, word [esp + 0x26]
sub eax, edx
add esp, 0xc
cmp eax, 0xfffff800
jge 0x4ee873
add eax, 0x1000
jmp 0x4ee87f
cmp eax, 0x800
jle 0x4ee87f
sub eax, 0x1000
cmp eax, 0x80
jle 0x4ee8d7
cmp eax, 0x200
jge 0x4ee8d7
push 0xffffffffffffffff
push ebx
push 0x11
mov ecx, esi
call fcn.00460c10
push ebx
push edi
push 3
call fcn.004e5da0
add eax, 0xf9
add esp, 4
or ah, 0x80
push eax
call fcn.00471ea0
push 0x38
call fcn.00455390
add esp, 0x10
mov dword [esp + 0x30], eax
cmp eax, ebx
mov dword [esp + 0x1d0], ebx
je 0x4ee941
push 0x10
push 0xc
push 0x7000
jmp 0x4ee937
cmp eax, 0xffffff80
jge 0x4ee962
cmp eax, 0xfffffe00
jle case.default.0x4ee7e0
push 0xffffffffffffffff
push ebx
push 0x12
mov ecx, esi
call fcn.00460c10
push ebx
push edi
push 3
call fcn.004e5da0
add eax, 0xf9
add esp, 4
or ah, 0x80
push eax
call fcn.00471ea0
push 0x38
call fcn.00455390
add esp, 0x10
mov dword [esp + 0x30], eax
cmp eax, ebx
mov dword [esp + 0x1d0], 1
je 0x4ee941
push 0x10
push 0xc
push 0xe00
push 3
push esi
mov ecx, eax
call fcn.00401c40
mov ecx, dword [esi + 0x218]
and ecx, 0xfffffffb
mov eax, dword [esi + 0x320]
mov dword [esi + 0x218], ecx
inc eax
mov dword [esi + 0x320], eax
jmp case.default.0x4ee7e0
cmp eax, 0x80
jg case.default.0x4ee7e0
push 0xffffffffffffffff
push ebx
push 0x22
mov ecx, esi
call fcn.00460c10
push ebx
push edi
push 3
call fcn.004e5da0
add eax, 0xf9
add esp, 4
or ah, 0x80
push eax
call fcn.00471ea0
mov eax, dword [esi + 0x218]
add esp, 0xc
and al, 0xfb
mov dword [esi + 0x320], 3
mov dword [esi + 0x218], eax
jmp case.default.0x4ee7e0
push 0xffffffffffffffff
push ebx
push 0xa
mov ecx, esi
call fcn.00460c10
lea eax, [esi + 8]
push ebx
push eax
push 0x80f2
call fcn.00471ea0
mov eax, dword [esi + 0x218]
add esp, 0xc
and al, 0xfb
mov dword [esi + 0x320], 8
mov dword [esi + 0x218], eax
jmp case.default.0x4ee7e0
mov eax, dword [esi + 0x288]
xor ebx, ebx
test al, 0x10
je 0x4eea67
and al, 0xef
lea ecx, [esi + 8]
mov dword [esi + 0x288], eax
mov edx, dword [0x6a9038]
add edx, 8
push ecx
lea eax, [esp + 0x28]
push edx
push eax
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov byte [esp + 0x50], 0xe
mov dword [esp + 0x54], 0xb
call fcn.004e7760
mov ecx, dword [eax]
add esp, 0xc
mov dword [esp + 0x50], ecx
mov ecx, dword [0x6a9038]
mov edx, dword [eax + 4]
mov dword [esp + 0x54], edx
mov eax, dword [eax + 8]
mov word [esp + 0x4c], 0x1e
mov dword [esp + 0x58], eax
mov edx, dword [ecx]
lea eax, [esp + 0x44]
push eax
call dword [edx + 0xc]
inc dword [esi + 0x320]
cmp byte [esi + 0x142], bl
je case.default.0x4ee7e0
mov eax, dword [esi + 0x218]
and al, 0xfb
mov dword [esi + 0x218], eax
jmp 0x4ef3f3
mov al, byte [esi + 0x142]
xor ebx, ebx
cmp al, bl
je case.default.0x4ee7e0
mov eax, dword [esi + 0x218]
and al, 0xfb
mov dword [esi + 0x218], eax
jmp 0x4ef3f3
mov ebp, 2
cmp word [esi + 0x128], bp
jl case.default.0x4ee7e0
push esi
call fcn.00475f50
lea ecx, [esp + 0x14]
lea edx, [esp + 0x28]
push ecx
xor ebx, ebx
push esi
push edx
mov word [esp + 0x24], bx
mov word [esp + 0x22], bx
mov word [esp + 0x20], bx
mov word [esp + 0x26], 0xe
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
call fcn.00453ee0
lea eax, [esp + 0x20]
lea edi, [esi + 0x3e8]
push eax
push esi
push edi
mov word [esp + 0x32], 0xb
call fcn.00453ee0
add esp, 0x1c
lea ecx, [esp + 0x74]
lea edx, [esp + 0x24]
lea eax, [esp + 0x144]
push ecx
push edi
push edx
push eax
mov dword [esp + 0x84], ebp
call fcn.004e7760
add esp, 0xc
lea ecx, [esp + 0x190]
push eax
push ecx
call fcn.004e7800
add esp, 0xc
mov ecx, edi
push eax
call fcn.004e7590
mov eax, dword [0x6a9038]
cmp dword [eax + 0xe1c], 0x20000000
je 0x4eecb1
add eax, 8
push eax
push edi
call fcn.004e6150
add esp, 8
cmp eax, 0x80
ja 0x4eecb1
mov edx, dword [0x6a9038]
lea eax, [esi + 8]
add edx, 8
lea ecx, [esp + 0x18]
push edx
push eax
push ecx
mov word [esp + 0x24], bx
mov word [esp + 0x26], bx
mov word [esp + 0x28], bx
call fcn.004e62d0
lea edx, [esp + 0x24]
lea eax, [esp + 0x44]
push edx
push 0x1000
push eax
mov word [esp + 0x30], bx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
call fcn.004e60c0
add esp, 0x18
lea ecx, [esp + 0x60]
mov dword [esp + 0x60], 0xc
push ecx
lea ecx, [esp + 0x3c]
call fcn.004e7650
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x4c]
mov dword [edx + 4], ecx
mov ecx, dword [0x6a9038]
mov dword [edx + 8], eax
call fcn.004b9420
mov ecx, dword [0x6a9038]
push 0xffffffffffffffff
push ebx
push 0xb7
call fcn.00460c10
mov eax, dword [esi + 0x218]
push 0x5c
or ah, 0x40
mov dword [esi + 0x218], eax
mov eax, dword [0x6a9038]
mov ecx, dword [eax + 0x554]
mov dword [eax + 0x554], 0x4f0a70
mov dword [esi + 0x424], ecx
mov dword [esi + 0x3f8], ebx
call fcn.004088a0
add esp, 4
mov dword [esp + 0x30], eax
cmp eax, ebx
mov dword [esp + 0x1d0], ebp
je 0x4eec6f
mov ecx, dword [0x6a9038]
push ebx
push ecx
mov ecx, eax
call fcn.004e8d90
jmp 0x4eec71
xor eax, eax
mov ebp, dword [esi + 0x194]
push str.Bad_register_index
or ebp, 0x4800
push 1
mov dword [esi + 0x3e4], eax
mov dword [esi + 0x194], ebp
call fcn.004015b0
mov word [esi + 0x222], bx
mov eax, dword [esi + 0x320]
add esp, 8
inc eax
mov dword [esi + 0x320], eax
jmp case.default.0x4ee7e0
push 0xffffffffffffffff
push ebx
push 0x25
mov ecx, esi
call fcn.00460c10
dec dword [esi + 0x320]
jmp case.default.0x4ee7e0
push esi
call fcn.00475f50
lea edx, [esp + 0x14]
lea eax, [esp + 0x28]
push edx
xor ebx, ebx
push esi
push eax
mov word [esp + 0x24], bx
mov word [esp + 0x22], bx
mov word [esp + 0x20], bx
mov word [esp + 0x26], 0xe
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
call fcn.00453ee0
lea ecx, [esp + 0x20]
lea edi, [esi + 0x3e8]
push ecx
push esi
push edi
mov word [esp + 0x32], 0xb
call fcn.00453ee0
add esp, 0x1c
lea edx, [esp + 0x6c]
lea eax, [esp + 0x24]
lea ecx, [esp + 0x1a4]
push edx
push edi
push eax
push ecx
mov dword [esp + 0x7c], 2
call fcn.004e7760
add esp, 0xc
lea edx, [esp + 0x1c0]
push eax
push edx
call fcn.004e7800
add esp, 0xc
mov ecx, edi
push eax
call fcn.004e7590
cmp byte [esi + 0x142], bl
je case.default.0x4ee7e0
cmp byte [0x60cfc5], bl
je 0x4eed81
push 2
call fcn.004e5da0
mov eax, dword [eax*4 + 0x55a580]
add esp, 4
jmp 0x4eed92
push 4
call fcn.004e5da0
mov eax, dword [eax*4 + str._b_v_f_r_t_n]
add esp, 4
cmp eax, dword [esi + 0x450]
je 0x4eed66
mov edx, eax
lea ecx, [esi + 8]
mov dword [esi + 0x450], eax
push ebx
shr edx, 0x10
push ecx
and eax, 0xffff
push edx
push eax
call fcn.00479d30
add esp, 0x10
mov ecx, esi
push 0xffffffffffffffff
push ebx
push 0x23
call fcn.00460c10
inc dword [esi + 0x320]
jmp case.default.0x4ee7e0
push esi
call fcn.00475f50
lea eax, [esp + 0x14]
lea ecx, [esp + 0x28]
push eax
xor ebx, ebx
push esi
push ecx
mov word [esp + 0x24], bx
mov word [esp + 0x22], bx
mov word [esp + 0x20], bx
mov word [esp + 0x26], 0xe
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
call fcn.00453ee0
lea edx, [esp + 0x20]
lea edi, [esi + 0x3e8]
push edx
push esi
push edi
mov word [esp + 0x32], 0xb
call fcn.00453ee0
add esp, 0x1c
lea eax, [esp + 0x70]
lea ecx, [esp + 0x24]
lea edx, [esp + 0x1b0]
push eax
push edi
push ecx
push edx
mov dword [esp + 0x80], 2
call fcn.004e7760
add esp, 0xc
push eax
lea eax, [esp + 0x170]
push eax
call fcn.004e7800
add esp, 0xc
mov ecx, edi
push eax
call fcn.004e7590
cmp word [esi + 0x128], 0x32
jl 0x4eeeae
push str.Bad_register_index
push 1
call fcn.004015b0
add esp, 8
cmp word [esi + 0x222], bx
jne 0x4eeeae
lea ecx, [esi + 8]
push ebx
push ecx
push 0x80f3
call fcn.00471ea0
push str.Bad_register_index
push 1
call fcn.004015b0
add esp, 0x14
mov word [esi + 0x222], 1
cmp byte [esi + 0x142], bl
je case.default.0x4ee7e0
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
lea edi, [esi + 8]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0xa0], edx
lea edx, [esi + 0x14]
mov dword [esp + 0xa4], eax
push edx
lea eax, [esp + 0x1c]
push 0x800
push eax
mov byte [esi + 0x3f4], bl
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0x118], ebx
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x120], ebx
mov word [esp + 0x124], bx
mov word [esp + 0x126], bx
mov word [esp + 0x128], bx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
call fcn.004e60c0
add esp, 0xc
lea ecx, [esp + 0x18]
push edi
call fcn.004e7590
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [esp + 0xac], ecx
lea ecx, [esp + 0xa0]
mov dword [esp + 0xb0], edx
push ecx
mov dword [esp + 0xb8], eax
call fcn.004524c0
lea edx, [esp + 0xa4]
push 1
push edx
call fcn.004549a0
mov eax, dword [esp + 0x114]
add esp, 0xc
cmp eax, ebx
je 0x4ef05b
mov ebp, dword [esp + 0xe0]
push edi
lea ecx, [esp + 0x1c]
call fcn.004e75c0
lea eax, [esp + 0x18]
lea ecx, [esp + 0x198]
push eax
push edi
push ecx
call fcn.004e7760
mov edx, eax
mov eax, dword [edx]
mov dword [esp + 0x24], eax
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
mov edx, dword [edx + 8]
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xac]
mov dword [esp + 0x2c], edx
push eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
call fcn.004524c0
lea ecx, [esp + 0xb0]
push 1
push ecx
call fcn.004549a0
mov eax, dword [esp + 0x120]
add esp, 0x18
cmp eax, ebx
je 0x4ef080
mov eax, dword [esp + 0xe0]
cmp ebp, eax
jle 0x4ef072
cmp ebp, 0x400
jge 0x4ef05b
mov byte [esi + 0x3f4], 1
push 0xffffffffffffffff
push ebx
push 0x24
mov ecx, esi
call fcn.00460c10
inc dword [esi + 0x320]
jmp case.default.0x4ee7e0
cmp eax, 0x400
jge 0x4ef080
mov byte [esi + 0x3f4], 1
push 0xffffffffffffffff
push ebx
push 0x27
mov ecx, esi
call fcn.00460c10
add dword [esi + 0x320], 2
jmp case.default.0x4ee7e0
push esi
call fcn.00475f50
lea edx, [esp + 0x14]
lea eax, [esp + 0x28]
push edx
xor ebx, ebx
push esi
push eax
mov word [esp + 0x24], bx
mov word [esp + 0x22], bx
mov word [esp + 0x20], bx
mov word [esp + 0x26], 0xe
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
call fcn.00453ee0
lea ecx, [esp + 0x20]
lea edi, [esi + 0x3e8]
push ecx
push esi
push edi
mov word [esp + 0x32], 0xb
call fcn.00453ee0
add esp, 0x1c
lea edx, [esp + 0x68]
lea eax, [esp + 0x24]
lea ecx, [esp + 0x180]
push edx
push edi
mov ebp, 2
push eax
push ecx
mov dword [esp + 0x78], ebp
call fcn.004e7760
add esp, 0xc
lea edx, [esp + 0x154]
push eax
push edx
call fcn.004e7800
add esp, 0xc
mov ecx, edi
push eax
call fcn.004e7590
cmp word [esi + 0x128], 0x1a
jl case.default.0x4ee7e0
mov ecx, dword [0x6a9038]
mov eax, dword [esi + 0x424]
mov dword [ecx + 0x554], eax
mov eax, dword [esi + 0x218]
and ah, 0xbf
mov dword [esp + 0x50], ebx
mov dword [esi + 0x218], eax
mov ecx, dword [0x6a9038]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov byte [esp + 0x44], 4
mov word [esp + 0x4c], 0x14
mov edx, dword [ecx]
lea eax, [esp + 0x44]
push eax
call dword [edx + 0xc]
mov ecx, dword [esi + 0x3e4]
call fcn.00408930
mov edx, dword [esi + 0x194]
mov dword [esi + 0x3e4], ebx
and dh, 0xb7
push 0xffffffffffffffff
mov dword [esi + 0x194], edx
mov ecx, dword [0x6a9038]
push ebx
push 0xb0
mov dword [ecx + 0xe1c], 0x800000
mov ecx, dword [0x6a9038]
call fcn.004c9130
mov al, byte [esi + 0x3f4]
mov ecx, dword [0x6a9038]
neg al
sbb eax, eax
lea edx, [esi + 0x14]
and al, 0x6a
push edx
add eax, 0x12c
add ecx, 0x60
push eax
push ecx
call fcn.004e60c0
mov edx, dword [0x6a9038]
add esp, 0xc
mov dword [edx + 0x64], 0xffff0000
mov eax, dword [esi + 0x320]
add eax, ebp
mov dword [esi + 0x320], eax
jmp case.default.0x4ee7e0
push esi
call fcn.00475f50
lea eax, [esp + 0x34]
lea ecx, [esp + 0x7c]
push eax
xor ebx, ebx
push esi
push ecx
mov word [esp + 0x44], bx
mov word [esp + 0x42], bx
mov word [esp + 0x40], bx
mov word [esp + 0x46], 0xe
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
call fcn.00453ee0
lea edx, [esp + 0x40]
lea edi, [esi + 0x3e8]
push edx
push esi
push edi
mov word [esp + 0x52], 0xb
call fcn.00453ee0
add esp, 0x1c
lea eax, [esp + 0x64]
lea ecx, [esp + 0x78]
lea edx, [esp + 0x15c]
push eax
push edi
push ecx
push edx
mov dword [esp + 0x74], 2
call fcn.004e7760
add esp, 0xc
push eax
lea eax, [esp + 0x17c]
push eax
call fcn.004e7800
add esp, 0xc
mov ecx, edi
push eax
call fcn.004e7590
cmp word [esi + 0x128], 0x15
jl case.default.0x4ee7e0
mov edx, dword [0x6a9038]
mov ecx, dword [esi + 0x424]
mov dword [edx + 0x554], ecx
mov eax, dword [esi + 0x218]
and ah, 0xbf
mov dword [esp + 0x90], ebx
mov dword [esi + 0x218], eax
mov ecx, dword [0x6a9038]
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov byte [esp + 0x84], 4
mov word [esp + 0x8c], 0x14
mov eax, dword [ecx]
lea edx, [esp + 0x84]
push edx
call dword [eax + 0xc]
mov ecx, dword [esi + 0x3e4]
call fcn.00408930
mov edi, dword [esi + 0x194]
mov dword [esi + 0x3e4], ebx
and edi, 0xffffb7ff
push 0xffffffffffffffff
mov dword [esi + 0x194], edi
mov eax, dword [0x6a9038]
push ebx
push 0xb0
mov dword [eax + 0xe1c], 0x800000
mov ecx, dword [0x6a9038]
call fcn.004c9130
mov dl, byte [esi + 0x3f4]
mov eax, dword [0x6a9038]
neg dl
sbb edx, edx
lea ecx, [esi + 0x14]
and dl, 0x6a
push ecx
add edx, 0x12c
add eax, 0x60
push edx
push eax
call fcn.004e60c0
mov eax, dword [0x6a9038]
add esp, 0xc
mov ecx, dword [eax + 0x60]
neg ecx
mov dword [eax + 0x60], ecx
mov edx, dword [0x6a9038]
mov dword [edx + 0x64], 0xffff0000
mov eax, dword [0x6a9038]
mov ecx, dword [eax + 0x68]
neg ecx
mov dword [eax + 0x68], ecx
mov ecx, dword [esi + 0x218]
or ch, 0x20
jmp 0x4ee94a
mov al, byte [esi + 0x142]
xor ebx, ebx
cmp al, bl
je case.default.0x4ee7e0
mov eax, dword [esi + 0x218]
test ah, 0x20
je 0x4ef3f3
mov dx, word [esi + 0x16]
push 0xffffffffffffffff
sub dx, 0x800
and ah, 0xdf
and edx, 0xfff
push ebx
push 9
mov ecx, esi
mov dword [esi + 0x218], eax
mov word [esi + 0x16], dx
call fcn.00460c10
mov dword [esi + 0x31c], 0x20
mov dword [esi + 0x320], ebx
mov ecx, dword [esp + 0x1c8]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x1c4
ret