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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x44
mov edi, dword [esp + 0x58]
test edi, edi
je 0x548f46
mov ebp, dword [esp + 0x5c]
mov eax, dword [edi + 0x78]
test eax, 0x100000
je 0x54869c
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x54869c
mov eax, dword [edi + 0x120]
add eax, 1
push eax
push ebp
push edi
call ecx
add esp, 0xc
mov eax, dword [edi + 0x78]
test eax, 0x8000
jne 0x5486b3
test eax, 0x10000
jne 0x5486da
test al, 4
jne 0x5486f8
jmp 0x5488f9
mov eax, dword [edi + 0x120]
add eax, 1
xor ecx, ecx
test byte [edi + 0x74], 0x80
sete cl
push ecx
push eax
push ebp
call fcn.0052aee0
add esp, 0xc
mov eax, dword [edi + 0x78]
test eax, 0x10000
je 0x5486aa
mov eax, dword [edi + 0x120]
add eax, 1
push eax
push ebp
call fcn.0052ae70
add esp, 8
mov eax, dword [edi + 0x78]
test al, 4
je 0x5488f9
cmp byte [ebp + 9], 8
jne 0x5488f9
cmp byte [ebp + 0xa], 1
jne 0x5488f9
mov edx, dword [edi + 0x120]
lea eax, [edx + 1]
mov cl, byte [edi + 0x14c]
cmp cl, 4
mov byte [esp + 8], cl
je 0x54881a
cmp cl, 2
je 0x548857
cmp cl, 1
jne 0x5488c3
mov esi, dword [ebp]
test esi, esi
je 0x5488c3
neg esi
xor edx, edx
xor edi, edi
xor ecx, ecx
cmp byte [eax + edi], 0
setne cl
shl ecx, 7
lea ebp, [esi + edi]
cmp ebp, 0xffffffff
je 0x5488b9
xor ebx, ebx
cmp byte [eax + edi + 1], 0
setne bl
shl ebx, 6
or ecx, ebx
cmp ebp, 0xfffffffe
je 0x5488b9
xor ebx, ebx
cmp byte [eax + edi + 2], 0
setne bl
shl ebx, 5
or ecx, ebx
cmp ebp, 0xfffffffd
je 0x5488b9
xor ebx, ebx
cmp byte [eax + edi + 3], 0
setne bl
shl ebx, 4
or ecx, ebx
cmp ebp, 0xfffffffc
je 0x5488b9
xor ebx, ebx
cmp byte [eax + edi + 4], 0
setne bl
shl ebx, 3
or ecx, ebx
cmp ebp, 0xfffffffb
je 0x5488b9
xor ebx, ebx
cmp byte [eax + edi + 5], 0
setne bl
shl ebx, 2
or ecx, ebx
cmp ebp, 0xfffffffa
je 0x5488b9
xor ebx, ebx
cmp byte [eax + edi + 6], 0
setne bl
add ebx, ebx
or ebx, ecx
cmp ebp, 0xfffffff9
je 0x5488b7
xor ecx, ecx
cmp byte [eax + edi + 7], 0
setne cl
or ebx, ecx
mov byte [eax + edx], bl
add edi, 8
add edx, 1
mov ecx, esi
add ecx, edi
mov ebp, dword [esp + 0x5c]
jne 0x54874b
jmp 0x5488c3
mov esi, dword [ebp]
test esi, esi
je 0x5488c3
neg esi
mov edi, 1
movzx ecx, byte [edx + edi]
shl cl, 4
mov ebx, esi
add ebx, edi
je 0x5488b2
mov ch, byte [edx + edi + 1]
and ch, 0xf
or ch, cl
mov byte [eax], ch
add eax, 1
lea ecx, [esi + edi]
add ecx, 2
add edi, 2
cmp ecx, 1
jne 0x54882c
jmp 0x5488c3
mov esi, dword [ebp]
test esi, esi
je 0x5488c3
neg esi
xor edi, edi
mov edx, eax
mov ch, byte [eax + edi]
shl ch, 6
lea ebx, [esi + edi]
cmp ebx, 0xffffffff
je 0x5488ad
mov cl, byte [eax + edi + 1]
shl cl, 4
and cl, 0x30
or ch, cl
cmp ebx, 0xfffffffe
je 0x5488ad
mov cl, byte [eax + edi + 2]
shl cl, 2
and cl, 0xc
or ch, cl
cmp ebx, 0xfffffffd
je 0x5488ad
mov cl, byte [eax + edi + 3]
and cl, 3
or cl, ch
mov byte [edx], cl
add edx, 1
add edi, 4
mov ecx, esi
add ecx, edi
jne 0x548864
jmp 0x5488c3
movzx ecx, ch
jmp 0x5488c1
movzx ecx, cl
jmp 0x5488bf
mov ecx, ebx
mov ebp, dword [esp + 0x5c]
add eax, edx
mov edx, eax
mov byte [edx], cl
mov cl, byte [esp + 8]
mov byte [ebp + 9], cl
mov al, byte [ebp + 0xa]
mul cl
mov byte [ebp + 0xb], al
movzx ecx, al
mov edx, dword [ebp]
cmp al, 8
jb 0x5488e4
shr ecx, 3
imul ecx, edx
jmp 0x5488ef
imul edx, ecx
add edx, 7
shr edx, 3
mov ecx, edx
mov edi, dword [esp + 0x58]
mov dword [ebp + 4], ecx
mov eax, dword [edi + 0x78]
test al, 0x10
je 0x548913
mov eax, dword [edi + 0x120]
add eax, 1
push eax
push ebp
call fcn.0052ae00
add esp, 8
mov eax, dword [edi + 0x78]
test al, 8
je 0x548c23
mov cl, byte [ebp + 8]
cmp cl, 3
je 0x548c23
mov eax, dword [edi + 0x120]
mov dword [esp], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 0
movzx ebx, byte [ebp + 9]
test cl, 2
jne 0x548979
mov al, byte [edi + 0x1a8]
mov dword [esp + 4], 1
jmp 0x5489ad
mov al, byte [edi + 0x1a5]
movzx edx, byte [edi + 0x1a6]
mov esi, ebx
sub esi, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], edx
movzx edx, byte [edi + 0x1a7]
mov esi, ebx
sub esi, edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x24], edx
mov dword [esp + 4], 3
movzx esi, al
mov eax, ebx
sub eax, esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], esi
test cl, 4
je 0x5489df
movzx eax, byte [edi + 0x1a9]
mov ecx, ebx
sub ecx, eax
mov edx, dword [esp + 4]
mov dword [esp + edx*4 + 0x2c], ecx
mov dword [esp + edx*4 + 0x1c], eax
add edx, 1
mov dword [esp + 4], edx
add dword [esp], 1
cmp bl, 7
ja 0x548ac0
mov ebp, dword [ebp + 4]
mov al, byte [edi + 0x1a8]
mov ecx, eax
xor cl, 1
mov edx, ebx
xor dl, 2
mov dword [esp + 0x18], ebx
mov ah, bl
xor ah, 4
xor al, 3
or al, ah
mov eax, 0x11
mov edi, 0xff
cmove edi, eax
or dl, cl
mov ecx, 0x55
cmovne ecx, edi
mov dword [esp + 0x40], ebp
test ebp, ebp
je 0x548c18
mov eax, esi
sub eax, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
mov edx, esi
neg edx
xor edi, edi
mov dword [esp + 0x10], esi
mov dword [esp + 4], ecx
mov dword [esp + 0x14], edx
jmp 0x548a6c
mov eax, dword [esp]
mov byte [eax], bl
mov edi, dword [esp + 0xc]
add edi, 1
add eax, 1
mov dword [esp], eax
cmp edi, dword [esp + 0x40]
je 0x548c18
mov dword [esp + 0xc], edi
mov ebx, 0
cmp byte [esp + 0x18], 0
je 0x548a50
mov eax, dword [esp]
movzx eax, byte [eax]
mov dword [esp + 8], eax
xor ebx, ebx
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
lea edx, [ecx + ebp]
mov esi, dword [esp + 8]
mov edi, esi
mov ecx, edx
shl edi, cl
mov ecx, eax
shr esi, cl
mov ecx, dword [esp + 4]
and esi, ecx
test edx, edx
cmovg esi, edi
or ebx, esi
mov esi, dword [esp + 0x10]
add eax, esi
sub ebp, esi
test ebp, ebp
jg 0x548a90
jmp 0x548a50
mov eax, dword [ebp]
imul eax, dword [esp + 4]
cmp bl, 8
mov dword [esp + 0x14], eax
jne 0x548b78
test eax, eax
je 0x548c18
xor eax, eax
jmp 0x548b0e
mov ecx, dword [esp]
mov eax, edi
mov byte [ecx], al
mov eax, dword [esp + 0xc]
add eax, 1
add ecx, 1
mov dword [esp], ecx
cmp eax, dword [esp + 0x14]
je 0x548c18
mov dword [esp + 0xc], eax
xor edx, edx
div dword [esp + 4]
mov esi, dword [esp + edx*4 + 0x2c]
mov ecx, dword [esp + edx*4 + 0x1c]
mov eax, ecx
neg eax
mov edi, 0
cmp esi, eax
jle 0x548af0
mov ebx, esi
mov eax, dword [esp]
movzx eax, byte [eax]
mov dword [esp + 0x10], eax
mov eax, esi
mov edx, ebx
neg edx
xor edi, edi
mov dword [esp + 8], ecx
nop word cs:[eax + eax]
nop
mov esi, dword [esp + 0x10]
mov ebp, esi
mov ecx, ebx
shl ebp, cl
mov ecx, edx
shr esi, cl
mov ecx, dword [esp + 8]
test ebx, ebx
cmovg esi, ebp
or edi, esi
sub eax, ecx
add edx, ecx
test ebx, ebx
mov ebx, eax
jg 0x548b50
jmp 0x548af0
test eax, eax
je 0x548c18
xor eax, eax
jmp 0x548bad
rol bp, 8
mov eax, dword [esp]
mov word [eax], bp
add eax, 2
mov dword [esp], eax
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 0x14]
je 0x548c18
mov dword [esp + 0xc], eax
xor edx, edx
div dword [esp + 4]
mov ebx, dword [esp + edx*4 + 0x2c]
mov ecx, dword [esp + edx*4 + 0x1c]
mov eax, ecx
neg eax
mov ebp, 0
cmp ebx, eax
jle 0x548b90
mov eax, dword [esp]
movzx eax, word [eax]
shl eax, 0x10
bswap eax
mov dword [esp + 0x10], eax
mov edx, ebx
neg edx
xor ebp, ebp
mov eax, ebx
mov dword [esp + 8], ecx
nop word [eax + eax]
mov esi, dword [esp + 0x10]
mov edi, esi
mov ecx, ebx
shl edi, cl
mov ecx, edx
shr esi, cl
mov ecx, dword [esp + 8]
test ebx, ebx
cmovg esi, edi
or ebp, esi
sub eax, ecx
add edx, ecx
test ebx, ebx
mov ebx, eax
jg 0x548bf0
jmp 0x548b90
mov edi, dword [esp + 0x58]
mov eax, dword [edi + 0x78]
mov ebp, dword [esp + 0x5c]
test eax, 0x20000
je 0x548da7
mov eax, dword [edi + 0x120]
add eax, 1
mov cl, byte [ebp + 8]
cmp cl, 4
je 0x548cc0
cmp cl, 6
jne 0x548da7
cmp byte [ebp + 9], 8
mov ecx, dword [ebp]
jne 0x548d2e
test ecx, ecx
je 0x548da7
cmp ecx, 1
je 0x548ca0
mov edx, ecx
and edx, 0xfffffffe
nop dword [eax + eax]
movzx ebx, byte [eax]
mov bh, byte [eax + 1]
mov byte [eax], bh
movzx esi, word [eax + 2]
mov word [eax + 1], si
mov byte [eax + 3], bl
movzx ebx, byte [eax + 4]
mov bh, byte [eax + 5]
mov byte [eax + 4], bh
movzx esi, word [eax + 6]
mov word [eax + 5], si
mov byte [eax + 7], bl
add eax, 8
add edx, 0xfffffffe
jne 0x548c70
test cl, 1
je 0x548da7
mov cl, byte [eax]
mov dl, byte [eax + 1]
mov byte [eax], dl
movzx edx, word [eax + 2]
mov word [eax + 1], dx
mov byte [eax + 3], cl
jmp 0x548da7
cmp byte [ebp + 9], 8
mov ecx, dword [ebp]
jne 0x548d7b
test ecx, ecx
je 0x548da7
lea esi, [ecx - 1]
mov edx, ecx
and edx, 3
cmp esi, 3
jb 0x548d0b
and ecx, 0xfffffffc
nop word cs:[eax + eax]
nop
rol word [eax], 8
rol word [eax + 2], 8
rol word [eax + 4], 8
rol word [eax + 6], 8
add eax, 8
add ecx, 0xfffffffc
jne 0x548cf0
test edx, edx
je 0x548da7
xor ecx, ecx
nop word cs:[eax + eax]
nop
rol word [eax + ecx*2], 8
add ecx, 1
cmp edx, ecx
jne 0x548d20
jmp 0x548da7
test ecx, ecx
je 0x548da7
xor edx, edx
nop word cs:[eax + eax]
nop
movzx esi, word [eax + edx*8]
movzx ebx, byte [eax + edx*8 + 2]
mov byte [eax + edx*8], bl
movzx edi, word [eax + edx*8 + 3]
mov word [eax + edx*8 + 1], di
movzx ebx, byte [eax + edx*8 + 5]
mov byte [eax + edx*8 + 3], bl
movzx edi, word [eax + edx*8 + 6]
mov word [eax + edx*8 + 4], di
mov edi, dword [esp + 0x58]
mov word [eax + edx*8 + 6], si
add edx, 1
cmp ecx, edx
jne 0x548d40
jmp 0x548da7
test ecx, ecx
je 0x548da7
cmp ecx, 1
je 0x548d9f
mov edx, ecx
and edx, 0xfffffffe
nop dword [eax]
rol dword [eax], 0x10
rol dword [eax + 4], 0x10
add eax, 8
add edx, 0xfffffffe
jne 0x548d90
test cl, 1
je 0x548da7
rol dword [eax], 0x10
test byte [edi + 0x7a], 8
je 0x548f25
mov ecx, dword [edi + 0x120]
lea eax, [ecx + 1]
mov dl, byte [ebp + 8]
cmp dl, 4
je 0x548e40
cmp dl, 6
jne 0x548f25
cmp byte [ebp + 9], 8
mov edx, dword [ebp]
jne 0x548ead
test edx, edx
je 0x548f25
lea esi, [edx - 1]
mov ebx, edx
and ebx, 3
cmp esi, 3
jb 0x548e1a
and edx, 0xfffffffc
xor esi, esi
nop word cs:[eax + eax]
nop dword [eax]
not byte [ecx + esi*4 + 4]
not byte [ecx + esi*4 + 8]
not byte [ecx + esi*4 + 0xc]
not byte [ecx + esi*4 + 0x10]
add eax, 0x10
add esi, 4
cmp edx, esi
jne 0x548e00
test ebx, ebx
je 0x548f25
xor ecx, ecx
nop word cs:[eax + eax]
nop
not byte [eax + ecx*4 + 3]
add ecx, 1
cmp ebx, ecx
jne 0x548e30
jmp 0x548f25
cmp byte [ebp + 9], 8
mov edx, dword [ebp]
jne 0x548ee7
test edx, edx
je 0x548f25
lea esi, [edx - 1]
mov ebx, edx
and ebx, 3
cmp esi, 3
jb 0x548e8a
and edx, 0xfffffffc
xor esi, esi
nop word [eax + eax]
not byte [ecx + esi*2 + 2]
not byte [ecx + esi*2 + 4]
not byte [ecx + esi*2 + 6]
not byte [ecx + esi*2 + 8]
add eax, 8
add esi, 4
cmp edx, esi
jne 0x548e70
test ebx, ebx
je 0x548f25
xor ecx, ecx
nop word cs:[eax + eax]
nop
not byte [eax + ecx*2 + 1]
add ecx, 1
cmp ebx, ecx
jne 0x548ea0
jmp 0x548f25
test edx, edx
je 0x548f25
cmp edx, 1
je 0x548eda
mov ebx, edx
and ebx, 0xfffffffe
xor esi, esi
nop dword [eax]
not byte [ecx + esi*8 + 7]
not byte [ecx + esi*8 + 8]
not byte [ecx + esi*8 + 0xf]
not byte [ecx + esi*8 + 0x10]
add eax, 0x10
add esi, 2
cmp ebx, esi
jne 0x548ec0
test dl, 1
je 0x548f25
not byte [eax + 6]
not byte [eax + 7]
jmp 0x548f25
test edx, edx
je 0x548f25
cmp edx, 1
je 0x548f1a
mov ebx, edx
and ebx, 0xfffffffe
xor esi, esi
nop word [eax + eax]
not byte [ecx + esi*4 + 3]
not byte [ecx + esi*4 + 4]
not byte [ecx + esi*4 + 7]
not byte [ecx + esi*4 + 8]
add eax, 8
add esi, 2
cmp ebx, esi
jne 0x548f00
test dl, 1
je 0x548f25
not byte [eax + 2]
not byte [eax + 3]
mov eax, dword [edi + 0x78]
test al, 1
je 0x548f42
mov eax, dword [edi + 0x120]
add eax, 1
push eax
push ebp
call fcn.0052b060
add esp, 8
mov eax, dword [edi + 0x78]
test al, 0x20
jne 0x548f4b
add esp, 0x44
jmp 0x548f5e
mov eax, dword [edi + 0x120]
add eax, 1
push eax
push ebp
call fcn.0052ac70
add esp, 0x4c
pop esi
pop edi
pop ebx
pop ebp
ret