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

Disassembly:
mov eax, 0x3884
call fcn.004574d0
mov eax, dword [0x5c9550]
xor eax, esp
mov dword [esp + 0x3880], eax
mov eax, dword [esp + 0x3890]
mov ecx, dword [esp + 0x3894]
push ebx
mov ebx, dword [esp + 0x388c]
mov dx, word [ebx + 0xa]
shr dx, 3
mov dword [esp + 0x54], eax
movzx eax, dx
push edi
mov edi, dword [esp + 0x3894]
mov dword [esp + 0x24], eax
movzx eax, word [edi + 0x28c8]
mov dword [esp + 0x48], edi
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x54], eax
test ax, ax
jne 0x54a3ca
pop edi
xor al, al
pop ebx
mov ecx, dword [esp + 0x3880]
xor ecx, esp
call fcn.00452910
add esp, 0x3884
ret
mov cl, byte [edi + 0x28ca]
test cl, cl
jne 0x54a3ed
pop edi
mov al, 0xa
pop ebx
mov ecx, dword [esp + 0x3880]
xor ecx, esp
call fcn.00452910
add esp, 0x3884
ret
movzx cx, cl
cmp ax, cx
jb 0x54a3d4
xor edx, edx
mov word [esp + 0x3878], dx
movzx dx, byte [edi + 2]
mov eax, 1
push ebp
push esi
cmp ax, dx
jae 0x54a43b
lea esi, [edx - 1]
lea eax, [esp + 0x3882]
lea ecx, [edi + 5]
movzx esi, si
movzx bp, byte [ecx]
imul bp, word [esp + 0x2c]
add bp, word [eax - 2]
inc ecx
mov word [eax], bp
add eax, 2
sub esi, 1
jne 0x54a421
xor ebp, ebp
cmp byte [ebx + 6], 0
mov dword [esp + 0x68], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x34], ebp
je 0x54a45c
mov ecx, 0x59b548
mov al, 0x16
jmp 0x54a463
mov ecx, 0x59b540
mov al, 6
movzx ax, al
xor esi, esi
cmp si, ax
jae 0x54a892
movzx eax, ax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x2c], eax
lea ecx, [ecx]
mov cl, byte [ecx]
xor bl, bl
mov byte [esp + 0x1f], cl
mov byte [esp + 0x13], bl
cmp byte [edi], bl
jbe 0x54a879
movzx esi, bl
mov byte [esp + 0x11], 0
mov dword [esp + 0x38], esi
movzx eax, word [edi + esi*2 + 0x792]
movzx ecx, word [edi + 0x7f8]
cmp ax, cx
movzx eax, ax
jb 0x54a4ba
movzx eax, cx
movzx ecx, byte [esp + 0x11]
movzx esi, word [edi + esi*2 + 0x790]
mov dword [esp + 0x78], ecx
add ecx, ecx
sub eax, esi
add ecx, ecx
cmp ecx, eax
jge 0x54a86b
xor esi, esi
xor eax, eax
mov dword [esp + 0x44], esi
cmp ax, dx
jae 0x54a85e
lea ebx, [ebx]
movzx eax, si
xor ecx, ecx
lea edx, [eax + edi + 0x1e7a]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x54], edx
cmp byte [edx], cl
jbe 0x54a84b
mov esi, eax
shl esi, 4
sub esi, eax
add esi, esi
movzx bp, bl
add esi, esi
add esi, esi
mov word [esp + 0x4a], bp
mov dword [esp + 0x28], esi
jmp 0x54a530
movzx ecx, cx
lea eax, [ecx + esi]
cmp word [edi + eax*2 + 0xbba], bp
ja 0x54a825
cmp word [edi + eax*2 + 0x133a], bp
jbe 0x54a825
mov bl, byte [edi + eax + 0x7fa]
mov cl, byte [esp + 0x1f]
mov al, bl
mov byte [esp + 0x40], bl
call fcn.0054a2b0
test al, al
je 0x54a825
mov edx, dword [esp + 0x38]
lea ebp, [edx + esi]
mov ax, word [edi + ebp*2 + 0x12]
sub ax, word [edi + ebp*2 + 0x10]
cmp bl, 5
movzx ecx, ax
movzx eax, word [esp + 0x44]
movzx eax, byte [eax + edi + 5]
setb bl
add eax, eax
add eax, eax
cdq
mov dword [esp + 0x7c], ebp
lea ebx, [ebx + ebx + 2]
movzx esi, bl
idiv esi
movzx edx, byte [esp + 0x40]
mov dl, byte [edx + 0x59b560]
mov byte [esp + 0x27], bl
movzx esi, ax
mov al, byte [edi + 0x28ca]
mov dword [esp + 0x6c], esi
cmp dl, al
jae 0x54a5cc
mov byte [esp + 0x12], dl
jmp 0x54a5d2
mov byte [esp + 0x12], al
mov dl, al
xor eax, eax
mov dword [esp + 0x20], 0
cmp ax, si
jae 0x54a81c
mov eax, dword [esp + 0x20]
movzx esi, si
imul esi, dword [esp + 0x78]
movzx ecx, cx
mov dword [esp + 0x74], esi
mov dword [esp + 0x4c], ecx
jmp 0x54a60c
mov dl, byte [esp + 0x12]
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0x7c]
movzx ecx, ax
add ecx, esi
cmp ecx, dword [esp + 0x4c]
jge 0x54a81c
movzx cx, byte [esp + 0x11]
imul cx, word [esp + 0x6c]
add cx, ax
movzx ax, bl
imul cx, ax
movzx eax, word [esp + 0x44]
add cx, word [esp + eax*2 + 0x3880]
add cx, word [edi + ebp*2 + 0x10]
cmp word [esp + 0x68], 0
movzx ebp, cx
mov dword [esp + 0x58], ebp
jne 0x54a7e6
movzx eax, word [esp + 0x34]
movzx ecx, dl
add ecx, eax
mov eax, dword [esp + 0x5c]
movzx esi, ax
cmp ecx, esi
jg 0x54a6ba
movzx eax, word [esp + 0x18]
mov ecx, dword [esp + 0x60]
lea esi, [eax + eax*2]
lea esi, [esp + esi*4 + 0x80]
mov al, dl
call fcn.0054a2f0
movzx cx, byte [esp + 0x12]
mov eax, dword [esp + 0x64]
add word [esp + 0x34], cx
movzx edx, bp
lea ecx, [eax + edx*2]
mov edx, dword [esp + 0x40]
push ecx
push esi
push edx
call fcn.00547ff0
add esp, 0xc
mov ecx, esi
call fcn.0054a210
inc dword [esp + 0x18]
jmp 0x54a804
cmp word [esp + 0x34], ax
jae 0x54a7ce
movzx edi, word [esp + 0x18]
sub al, byte [esp + 0x34]
mov ecx, dword [esp + 0x60]
lea edi, [edi + edi*2]
add edi, edi
add edi, edi
lea ebp, [esp + edi + 0x80]
mov esi, ebp
mov byte [esp + 0x33], al
call fcn.0054a2f0
mov al, byte [esp + edi + 0x7c]
add byte [esp + edi + 0x88], al
lea ebx, [esp + edi + 0x88]
mov ecx, ebp
call fcn.0054a210
mov cl, byte [ebx - 0xc]
cmp cl, 0x20
lea esi, [ebp - 0xc]
jle 0x54a799
sub cl, 0x20
lea edi, [esp + edi + 0x84]
call fcn.00547730
add eax, dword [edi]
mov dword [edi - 0xc], eax
mov al, byte [esi + 8]
cmp al, 0x20
jg 0x54a75a
jl 0x54a743
movsx ecx, al
mov eax, dword [esi]
sub ecx, 0x20
shr eax, cl
mov ecx, dword [ebp]
add ecx, eax
mov dword [esi], ecx
jmp 0x54a7b4
movsx edx, al
mov eax, dword [esi]
mov ecx, 0x20
sub ecx, edx
shl eax, cl
mov ecx, dword [ebp]
add ecx, eax
mov dword [esi], ecx
jmp 0x54a7b4
movsx edx, al
lea eax, [edx - 0x20]
cmp eax, 0x20
jge 0x54a788
or eax, 0xffffffff
mov ecx, 0x40
sub ecx, edx
shr eax, cl
and eax, dword [esi + 4]
shl eax, cl
lea ecx, [edx - 0x20]
mov edx, dword [esi]
shr edx, cl
mov ecx, dword [ebp]
or eax, edx
add ecx, eax
mov dword [esi], ecx
jmp 0x54a7b4
mov eax, dword [esi + 4]
lea ecx, [edx - 0x40]
shr eax, cl
mov ecx, dword [ebp]
add ecx, eax
mov dword [esi], ecx
jmp 0x54a7b4
call fcn.00547730
add eax, dword [ebp]
mov edx, dword [esp + edi + 0x84]
lea edi, [esp + edi + 0x84]
mov dword [esi], eax
mov dword [edi - 0xc], edx
mov al, byte [ebx - 0xc]
add al, byte [esp + 0x33]
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x58]
mov byte [ebx - 0xc], al
mov bl, byte [esp + 0x27]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
movzx eax, ax
mov dword [esp + 0x34], eax
mov dword [esp + 0x68], 1
push ecx
xor eax, eax
jmp 0x54a7f3
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x18]
push edx
mov edx, ebp
lea ecx, [esp + 0x1884]
call fcn.0054a330
add esp, 4
mov eax, dword [esp + 0x20]
inc dword [esp + 0x14]
inc eax
mov dword [esp + 0x20], eax
cmp ax, word [esp + 0x6c]
jb 0x54a600
mov esi, dword [esp + 0x28]
mov bp, word [esp + 0x4a]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x70]
movzx dx, byte [eax]
inc ecx
mov dword [esp + 0x70], ecx
cmp cx, dx
jb 0x54a530
mov ebp, dword [esp + 0x18]
mov bl, byte [esp + 0x13]
mov esi, dword [esp + 0x44]
movzx dx, byte [edi + 2]
inc esi
mov dword [esp + 0x44], esi
cmp si, dx
jb 0x54a4f0
inc byte [esp + 0x11]
mov esi, dword [esp + 0x38]
jmp 0x54a4a0
inc bl
mov byte [esp + 0x13], bl
cmp bl, byte [edi]
jb 0x54a494
mov ecx, dword [esp + 0x3c]
inc ecx
sub dword [esp + 0x2c], 1
mov dword [esp + 0x3c], ecx
jne 0x54a480
test bp, bp
jne 0x54a899
mov al, 0xa
jmp 0x54aa36
movzx esi, word [esp + 0x14]
movzx ecx, bp
mov eax, esi
cdq
idiv ecx
mov ecx, 1
mov dword [esp + 0x4c], esi
movzx eax, ax
cmp cx, ax
ja 0x54aa34
movzx edx, ax
mov dword [esp + 0x14], 0
mov dword [esp + 0x38], edx
lea ebx, [ebx]
xor eax, eax
cmp ax, bp
jae 0x54aa25
movzx eax, bp
mov ecx, esi
sub ecx, eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x20], 0
mov dword [esp + 0x3c], eax
movzx ecx, word [esp + 0x14]
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
movzx eax, ax
add eax, dword [esp + 0x20]
movzx ecx, bp
cdq
idiv ecx
movzx esi, word [esp + 0x28]
cmp esi, dword [esp + 0x54]
movzx eax, dx
jge 0x54a9f5
shl esi, 4
cmp byte [esp + esi + 0x1881], 0
lea ecx, [esp + esi + 0x1881]
mov dword [esp + 0x58], ecx
jne 0x54a9db
movzx ebp, ax
lea ebp, [ebp + ebp*2]
add ebp, ebp
add ebp, ebp
cmp byte [esp + ebp + 0x88], 0
jle 0x54a9db
cmp byte [esp + esi + 0x188c], 0
lea eax, [esp + esi + 0x188c]
mov dword [esp + 0x50], eax
je 0x54a981
lea edx, [esp + esi + 0x1884]
push edx
lea edi, [esp + ebp + 0x84]
call fcn.0054a230
add esp, 4
movzx eax, word [esp + esi + 0x1882]
mov ecx, dword [esp + 0x64]
mov bl, byte [esp + ebp + 0x88]
lea edx, [ecx + eax*2]
movzx eax, byte [esp + esi + 0x1880]
push edx
lea edi, [esp + ebp + 0x84]
push edi
push eax
call fcn.00547ff0
add esp, 0xc
test al, al
jl 0x54a9be
mov ecx, dword [esp + 0x58]
mov byte [ecx], 1
jmp 0x54a9db
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
lea esi, [esp + esi + 0x1884]
mov dword [esi], edx
mov edx, dword [esp + 0x50]
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
mov byte [edx], bl
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x18]
inc dword [esp + 0x28]
inc eax
mov dword [esp + 0x2c], eax
cmp ax, bp
jb 0x54a901
mov eax, 1
add dword [esp + 0x20], eax
sub dword [esp + 0x3c], eax
jne 0x54a8f2
lea esi, [esp + 0x80]
movzx edi, bp
mov ecx, esi
call fcn.0054a210
add esi, 0xc
sub edi, 1
jne 0x54aa12
mov esi, dword [esp + 0x4c]
add dword [esp + 0x14], ebp
sub dword [esp + 0x38], 1
jne 0x54a8d0
xor al, al
mov ecx, dword [esp + 0x3890]
pop esi
pop ebp
pop edi
pop ebx
xor ecx, esp
call fcn.00452910
add esp, 0x3884
ret