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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffff004
mov ebx, eax
push eax
add esp, 0xfffffa30
cmp dword [ebx + 0x1c], 0
je 0x550067
cmp dword [ebx + 0x1c], 0
jbe 0x54ecdc
mov eax, dword [ebx + 0x18]
cmp byte [eax], 5
je 0x54ece0
xor edx, edx
jmp 0x54ece5
mov edx, 1
mov byte [esp], dl
mov cl, byte [esp]
mov byte [ebx + 0x24], cl
push 0x4ac
push 0
lea eax, [esp + 0x164]
push eax
call fcn.005657fd
add esp, 0xc
push 0xf0
push 0
lea edx, [esp + 0xf64]
push edx
call fcn.005657fd
add esp, 0xc
push 0x70
push 0
lea ecx, [esp + 0x12f8]
push ecx
call fcn.005657fd
add esp, 0xc
push 0x44
push 0
lea eax, [esp + 0x1230]
push eax
call fcn.005657fd
add esp, 0xc
xor esi, esi
xor edi, edi
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
shl edx, 2
lea edx, [edx + edx*2]
add edx, eax
mov dword [esp + 8], edx
cmp eax, dword [esp + 8]
jae 0x54ef31
mov dl, byte [eax]
test dl, dl
jne 0x54ed7b
xor ecx, ecx
mov cl, byte [eax + 1]
inc dword [esp + ecx*4 + 0x15c]
jmp 0x54ef24
cmp dl, 1
jne 0x54ee75
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x20
jae 0x54ed9f
xor ecx, ecx
mov cl, byte [edx + 0x439d64]
inc dword [esp + ecx*4 + 0x598]
jmp 0x54edb0
shr edx, 3
movzx edx, byte [edx + 0x439d84]
inc dword [esp + edx*4 + 0x598]
mov ecx, dword [eax + 8]
cmp ecx, 0x40
jae 0x54edc2
xor edx, edx
mov dl, byte [ecx + 0x439dc0]
jmp 0x54ee1a
cmp ecx, 0x800
jae 0x54edd8
mov edx, ecx
shr edx, 5
movzx edx, byte [edx + 0x439e00]
jmp 0x54ee1a
cmp ecx, 0x10000
jae 0x54edee
mov edx, ecx
shr edx, 0xa
movzx edx, byte [edx + 0x439e40]
jmp 0x54ee1a
cmp ecx, 0x20000
jae 0x54ee00
mov edx, ecx
shr edx, 0xf
add edx, 0x1e
jmp 0x54ee1a
cmp ecx, 0x100000
jae 0x54ee12
mov edx, ecx
shr edx, 0x10
add edx, 0x20
jmp 0x54ee1a
mov edx, ecx
shr edx, 0x12
add edx, 0x2c
inc dword [esp + edx*4 + 0xf5c]
cmp edx, 9
jbe 0x54ee68
and ecx, 0xf
inc dword [esp + ecx*4 + 0x1228]
cmp esi, ecx
jne 0x54ee45
cmp edi, 0x10
jge 0x54ee45
inc edi
cmp edi, 1
jne 0x54ee68
mov dword [esp + 4], eax
jmp 0x54ee68
cmp edi, 0x10
jne 0x54ee64
sub dword [esp + esi*4 + 0x1228], 0x10
inc dword [esp + 0x1268]
mov esi, dword [esp + 4]
mov dword [esi + 4], 0x10
xor edi, edi
mov esi, ecx
mov byte [eax + 1], dl
xor edx, edx
mov dword [eax + 4], edx
jmp 0x54ef24
mov cl, byte [eax]
sub cl, 2
je 0x54ee92
dec cl
je 0x54eecd
dec cl
je 0x54eed6
sub cl, 3
je 0x54ef1d
jmp 0x54ef24
mov edx, dword [eax + 8]
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], 0x20
jae 0x54eeb2
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dl, byte [ecx + 0x439ebc]
mov dword [esp + 0xc], edx
jmp 0x54eec0
mov ecx, dword [esp + 0x10]
shr ecx, 6
add ecx, 4
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0xc]
inc dword [esp + edx*4 + 0x578]
jmp 0x54ef24
inc dword [esp + 0x564]
jmp 0x54ef24
mov ecx, dword [eax + 8]
inc dword [esp + ecx*4 + 0x568]
xor edx, edx
mov dl, byte [eax + 2]
mov dword [esp + 0x14], edx
cmp dword [esp + 0x14], 0x20
jae 0x54ef05
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dl, byte [ecx + 0x439d64]
inc dword [esp + edx*4 + 0x12f0]
jmp 0x54ef24
mov ecx, dword [esp + 0x14]
shr ecx, 3
xor edx, edx
mov dl, byte [ecx + 0x439d84]
inc dword [esp + edx*4 + 0x12f0]
jmp 0x54ef24
inc dword [esp + 0x560]
add eax, 0xc
cmp eax, dword [esp + 8]
jb 0x54ed64
mov dword [esp + 0x55c], 1
lea edx, [esp + 0x15c]
mov ecx, 0x12b
mov eax, ebx
call fcn.00550489
lea edx, [esp + 0xf5c]
mov ecx, 0x3c
mov eax, ebx
call fcn.00550489
lea edx, [esp + 0x1228]
mov ecx, 0x11
mov eax, ebx
call fcn.00550489
lea edx, [esp + 0x12f0]
mov ecx, 0x1c
mov eax, ebx
call fcn.00550489
lea eax, [esp + 0xab0]
push eax
lea ecx, [esp + 0x1440]
lea edx, [esp + 0x160]
mov eax, 0x12b
call fcn.0054eab9
lea edx, [esp + 0x1138]
mov eax, 0x3c
push edx
lea edx, [esp + 0xf60]
lea ecx, [esp + 0x156b]
call fcn.0054eab9
lea ecx, [esp + 0x12ac]
mov eax, 0x11
push ecx
lea ecx, [esp + 0x15a7]
lea edx, [esp + 0x122c]
call fcn.0054eab9
lea eax, [esp + 0x13cc]
push eax
lea ecx, [esp + 0x15b8]
lea edx, [esp + 0x12f4]
mov eax, 0x1c
call fcn.0054eab9
mov byte [esp + 0x18], 0
cmp byte [esp], 0
jne 0x54f026
mov byte [esp + 0x18], 1
lea edx, [esp + 0x143c]
mov eax, ebx
call fcn.00550075
xor edi, edi
mov esi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x1c]
shl eax, 2
lea eax, [eax + eax*2]
add eax, esi
mov dword [esp + 0x1c], eax
cmp esi, dword [esp + 0x1c]
jae 0x54fe5e
cmp byte [esi], 0
jne 0x54f0ff
xor eax, eax
mov al, byte [esi + 1]
movzx ebp, byte [esp + eax + 0x143c]
mov eax, dword [esp + eax*4 + 0xab0]
mov dword [esp + 0x20], eax
cmp ebp, dword [ebx + 8]
jge 0x54f07e
sub dword [ebx + 8], ebp
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x20]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x54fe51
sub ebp, dword [ebx + 8]
mov eax, dword [esp + 0x20]
mov ecx, ebp
mov edx, 0x10
shr eax, cl
or eax, dword [ebx + 4]
sub edx, ebp
mov dword [esp + 0x24], eax
mov dword [ebx + 8], edx
mov eax, dword [esp + 0x20]
mov ecx, edx
shl eax, cl
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x24]
shr eax, 8
mov dword [esp + 0x28], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x28]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54f0cf
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x2c]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54fe51
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp 0x54fe51
cmp byte [esi], 1
jne 0x54f70f
xor ecx, ecx
mov cl, byte [esi + 2]
mov dword [esp + 0x30], ecx
cmp dword [esp + 0x30], 0x20
jae 0x54f125
mov eax, dword [esp + 0x30]
movzx ebp, byte [eax + 0x439d64]
jmp 0x54f133
mov eax, dword [esp + 0x30]
shr eax, 3
movzx ebp, byte [eax + 0x439d84]
xor eax, eax
mov al, byte [esp + ebp + 0x154b]
mov dword [esp + 0x34], eax
mov edx, dword [esp + ebp*4 + 0xeec]
mov dword [esp + 0x38], edx
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x34]
jle 0x54f16c
mov eax, dword [esp + 0x34]
sub dword [ebx + 8], eax
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x38]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x54f1ec
mov eax, dword [ebx + 8]
sub dword [esp + 0x34], eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
shr edx, cl
or edx, dword [ebx + 4]
mov dword [esp + 0x3c], edx
mov eax, 0x10
sub eax, dword [esp + 0x34]
mov dword [ebx + 8], eax
mov ecx, eax
mov edx, dword [esp + 0x38]
shl edx, cl
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x3c]
shr eax, 8
mov dword [esp + 0x40], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x40]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54f1c5
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x44], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x44]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54f1ec
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
xor eax, eax
mov al, byte [ebp + 0x439da4]
test eax, eax
je 0x54f29b
mov ebp, eax
mov eax, dword [eax*4 + 0x439d10]
and eax, dword [esp + 0x30]
mov dword [esp + 0x48], eax
cmp ebp, dword [ebx + 8]
jge 0x54f223
sub dword [ebx + 8], ebp
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x48]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x54f29b
sub ebp, dword [ebx + 8]
mov eax, dword [esp + 0x48]
mov ecx, ebp
mov edx, 0x10
shr eax, cl
or eax, dword [ebx + 4]
sub edx, ebp
mov dword [esp + 0x4c], eax
mov dword [ebx + 8], edx
mov eax, dword [esp + 0x48]
mov ecx, edx
shl eax, cl
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x4c]
shr eax, 8
mov dword [esp + 0x50], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x50]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54f274
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x54], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x54]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54f29b
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esi + 8]
mov dword [esp + 0x58], ecx
movzx ebp, byte [esi + 1]
xor eax, eax
mov al, byte [esp + ebp + 0x1567]
mov dword [esp + 0x5c], eax
mov edx, dword [esp + ebp*4 + 0x1138]
mov dword [esp + 0x60], edx
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x5c]
jle 0x54f2df
mov eax, dword [esp + 0x5c]
sub dword [ebx + 8], eax
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x60]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x54f35f
mov eax, dword [ebx + 8]
sub dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
shr edx, cl
or edx, dword [ebx + 4]
mov dword [esp + 0x64], edx
mov eax, 0x10
sub eax, dword [esp + 0x5c]
mov dword [ebx + 8], eax
mov ecx, eax
mov edx, dword [esp + 0x60]
shl edx, cl
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x64]
shr eax, 8
mov dword [esp + 0x68], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x68]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54f338
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x6c], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x6c]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54f35f
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
xor eax, eax
cmp ebp, 9
mov al, byte [ebp + 0x439e80]
jbe 0x54f643
mov ebp, dword [esp + 0x58]
and ebp, 0xf
cmp eax, 4
jbe 0x54f442
mov edx, eax
sub edx, 4
mov dword [esp + 0x70], edx
mov eax, dword [eax*4 + 0x439d10]
and eax, dword [esp + 0x58]
shr eax, 4
mov dword [esp + 0x74], eax
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x70]
jle 0x54f3bc
mov eax, dword [esp + 0x70]
sub dword [ebx + 8], eax
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x74]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x54f442
mov eax, dword [ebx + 8]
sub dword [esp + 0x70], eax
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
shr edx, cl
or edx, dword [ebx + 4]
mov dword [esp + 0x78], edx
mov eax, 0x10
sub eax, dword [esp + 0x70]
mov dword [ebx + 8], eax
mov ecx, eax
mov edx, dword [esp + 0x74]
shl edx, cl
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x78]
shr eax, 8
mov dword [esp + 0x7c], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x7c]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54f415
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x80], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x80]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54f442
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
test edi, edi
jne 0x54f63d
mov edi, dword [esi + 4]
cmp edi, 0x10
jne 0x54f548
xor eax, eax
mov al, byte [esp + 0x15b3]
mov dword [esp + 0x84], eax
mov edx, dword [esp + 0x12ec]
mov dword [esp + 0x88], edx
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x84]
jle 0x54f49e
mov eax, dword [esp + 0x84]
sub dword [ebx + 8], eax
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x88]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x54f542
mov eax, dword [ebx + 8]
sub dword [esp + 0x84], eax
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
shr edx, cl
or edx, dword [ebx + 4]
mov dword [esp + 0x8c], edx
mov eax, 0x10
sub eax, dword [esp + 0x84]
mov dword [ebx + 8], eax
mov ecx, eax
mov edx, dword [esp + 0x88]
shl edx, cl
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x8c]
shr eax, 8
mov dword [esp + 0x90], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x90]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54f512
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x94], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x94]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54f542
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
dec edi
jmp 0x54fe51
xor ecx, ecx
mov cl, byte [esp + ebp + 0x15a3]
mov dword [esp + 0x98], ecx
mov eax, dword [esp + ebp*4 + 0x12ac]
mov dword [esp + 0x9c], eax
mov edx, dword [ebx + 8]
cmp edx, dword [esp + 0x98]
jle 0x54f590
mov ecx, dword [esp + 0x98]
sub dword [ebx + 8], ecx
mov ecx, dword [ebx + 8]
mov eax, dword [esp + 0x9c]
shl eax, cl
or dword [ebx + 4], eax
jmp 0x54fe51
mov edx, dword [ebx + 8]
sub dword [esp + 0x98], edx
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
shr eax, cl
or eax, dword [ebx + 4]
mov dword [esp + 0xa0], eax
mov edx, 0x10
sub edx, dword [esp + 0x98]
mov dword [ebx + 8], edx
mov ecx, edx
mov eax, dword [esp + 0x9c]
shl eax, cl
mov dword [ebx + 4], eax
mov eax, dword [esp + 0xa0]
shr eax, 8
mov dword [esp + 0xa4], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0xa4]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54f604
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xa8], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0xa8]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54fe51
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp 0x54fe51
dec edi
jmp 0x54fe51
mov ebp, eax
mov eax, dword [eax*4 + 0x439d10]
and eax, dword [esp + 0x58]
mov dword [esp + 0xac], eax
cmp ebp, dword [ebx + 8]
jge 0x54f673
sub dword [ebx + 8], ebp
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0xac]
shl edx, cl
or dword [ebx + 4], edx
jmp 0x54fe51
sub ebp, dword [ebx + 8]
mov eax, dword [esp + 0xac]
mov ecx, ebp
mov edx, 0x10
shr eax, cl
or eax, dword [ebx + 4]
sub edx, ebp
mov dword [esp + 0xb0], eax
mov dword [ebx + 8], edx
mov eax, dword [esp + 0xac]
mov ecx, edx
shl eax, cl
mov dword [ebx + 4], eax
mov eax, dword [esp + 0xb0]
shr eax, 8
mov dword [esp + 0xb4], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0xb4]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54f6d6
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xb8], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0xb8]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54fe51
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
jmp 0x54fe51
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 7
ja 0x54fe51
jmp dword [ecx*4 + 0x41a0e6]
add esi, 0xc
cmp esi, dword [esp + 0x1c]
jb 0x54f044
cmp byte [esp + 0x18], 0
je 0x55002f
xor edx, edx
mov dl, byte [esp + 0x153c]
mov dword [esp + 0x138], edx
mov ecx, dword [esp + 0xeb0]
mov dword [esp + 0x13c], ecx
mov eax, dword [ebx + 8]
cmp eax, dword [esp + 0x138]
jle 0x54feb1
mov edx, dword [esp + 0x138]
sub dword [ebx + 8], edx
mov ecx, dword [ebx + 8]
mov eax, dword [esp + 0x13c]
shl eax, cl
or dword [ebx + 4], eax
jmp 0x54ff55
mov edx, dword [ebx + 8]
sub dword [esp + 0x138], edx
mov ecx, dword [esp + 0x138]
mov eax, dword [esp + 0x13c]
shr eax, cl
or eax, dword [ebx + 4]
mov dword [esp + 0x140], eax
mov edx, 0x10
sub edx, dword [esp + 0x138]
mov dword [ebx + 8], edx
mov ecx, edx
mov eax, dword [esp + 0x13c]
shl eax, cl
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x140]
shr eax, 8
mov dword [esp + 0x144], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x144]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54ff25
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x140]
mov dword [esp + 0x148], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x148]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54ff55
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov dword [esp + 0x14c], 1
mov ecx, dword [ebx + 8]
cmp ecx, dword [esp + 0x14c]
jle 0x54ff88
mov eax, dword [esp + 0x14c]
sub dword [ebx + 8], eax
mov ecx, dword [ebx + 8]
mov edx, 1
shl edx, cl
or dword [ebx + 4], edx
jmp 0x550028
mov eax, dword [ebx + 8]
mov edx, 1
sub dword [esp + 0x14c], eax
mov eax, 0x10
mov ecx, dword [esp + 0x14c]
shr edx, cl
or edx, dword [ebx + 4]
mov dword [esp + 0x150], edx
mov edx, 1
sub eax, dword [esp + 0x14c]
mov ecx, eax
mov dword [ebx + 8], eax
shl edx, cl
mov dword [ebx + 4], edx
mov eax, dword [esp + 0x150]
shr eax, 8
mov dword [esp + 0x154], eax
mov edx, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov al, byte [esp + 0x154]
mov byte [ecx + edx], al
cmp dword [ebx + 0x10], 0x7ff0
jne 0x54fff8
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [esp + 0x150]
mov dword [esp + 0x158], ecx
mov eax, dword [ebx + 0x10]
inc dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov cl, byte [esp + 0x158]
mov byte [edx + eax], cl
cmp dword [ebx + 0x10], 0x7ff0
jne 0x550028
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov eax, ebx
call fcn.0054974d
mov edx, dword [ebx + 0x1c]
xor ecx, ecx
mov dword [ebx + 0x20], edx
mov dword [ebx + 0x1c], ecx
push 0x194
lea eax, [esp + 0x1440]
push eax
lea edx, [ebx + 0x38]
push edx
call fcn.0056578d
add esp, 0xc
cmp dword [ebx + 0x1cc], 0
je 0x550067
mov eax, dword [ebx + 0x1cc]
call fcn.005506a9
add esp, 0x15d0
pop ebp
pop edi
pop esi
pop ebx
ret