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

Disassembly:
push 0xffffffffffffffff
push 0x5dfe72
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10c
mov eax, dword [esp + 0x128]
push ebx
push ebp
mov ebp, ecx
mov ecx, dword [esp + 0x134]
push esi
xor esi, esi
mov dword [esp + 0x38], ecx
push edi
lea ecx, [esp + 0x6c]
mov dword [esp + 0x40], esi
mov dword [ebp + 0xc], esi
mov dword [esp + 0x38], eax
call fcn.00559c60
mov byte [0x60fdac], 3
mov al, byte [ebp + 4]
test al, al
mov dword [esp + 0x124], 1
jne 0x550404
mov edi, dword [ebp + 0x14]
mov ecx, 0x19
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [ebp + 0x14]
mov dword [ebp + 0x1c], edx
call fcn.005579d0
mov ebx, dword [esp + 0x130]
test al, al
je 0x5505fe
cmp dword [ebp + 0x10], esi
je 0x5505fe
mov al, byte [esp + 0x13]
push esi
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
call fcn.00401850
mov edi, str.CCommWithEcu::AddressCodeEnter_
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x28], ecx
push ecx
lea ecx, [esp + 0x1c]
call fcn.004018c0
test al, al
je 0x55047f
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov ecx, eax
mov esi, str.CCommWithEcu::AddressCodeEnter_
mov edx, ecx
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004018a0
xor esi, esi
mov ecx, ebx
lea eax, [esp + 0x44]
push 0xa
and ecx, 0xff
push eax
push ecx
mov byte [esp + 0x130], 2
call fcn.005bd695
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.00502fe0
mov edi, 0x6100e0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6100e0
lea ecx, [esp + 0x1c]
call fcn.00502fe0
mov eax, dword [esp + 0x134]
lea edx, [esp + 0x44]
push 0xa
and eax, 0xffff
push edx
push eax
call fcn.005bd695
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.00502fe0
mov edi, 0x6100e0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6100e0
lea ecx, [esp + 0x1c]
call fcn.00502fe0
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x138]
push ecx
push edx
lea eax, [esp + 0x4c]
push str._.2f
push eax
call fcn.005bcf3d
lea edi, [esp + 0x54]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00502fe0
mov edi, 0x6100e0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6100e0
lea ecx, [esp + 0x1c]
call fcn.00502fe0
movsx eax, word [esp + 0x140]
lea edx, [esp + 0x44]
push 0xa
push edx
push eax
call fcn.005bd695
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.00502fe0
mov edi, 0x60aa34
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x60aa34
lea ecx, [esp + 0x1c]
call fcn.00502fe0
mov eax, dword [esp + 0x18]
cmp eax, esi
jne 0x5505e2
mov eax, 0x5e514c
mov ecx, dword [ebp + 0x10]
push eax
call fcn.005566e0
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0x128], 1
call fcn.00401850
mov ecx, dword [ebp + 0x1c]
fld qword [esp + 0x138]
fcom qword [0x5e77e8]
mov byte [ecx], 2
mov edx, dword [ebp + 0x1c]
xor cl, cl
mov byte [edx + 1], 4
mov eax, dword [ebp + 0x1c]
mov byte [esp + 0x13], cl
mov byte [eax + 2], bl
fnstsw ax
test ah, 0x41
jne 0x550644
fmul qword [0x5e5198]
fcom qword [0x5e77e8]
inc cl
fnstsw ax
test ah, 0x41
je 0x55062b
mov byte [esp + 0x13], cl
fcom qword [0x5e5280]
fnstsw ax
test ah, 1
je 0x55066a
fmul qword [0x5e77e8]
fcom qword [0x5e5280]
dec cl
fnstsw ax
test ah, 1
jne 0x550651
mov byte [esp + 0x13], cl
fmul qword [0x5e5198]
call fcn.005bd300
mov edi, dword [ebp + 0x1c]
mov cl, byte [esp + 0x13]
xor edx, edx
inc cl
mov dl, ah
mov byte [edi + 3], dl
mov edx, dword [ebp + 0x1c]
mov byte [edx + 4], al
mov eax, dword [ebp + 0x1c]
mov byte [eax + 5], cl
mov eax, dword [esp + 0x134]
mov edx, dword [ebp + 0x1c]
xor ecx, ecx
mov cl, ah
and eax, 0xffff
and eax, 0x800000ff
mov byte [edx + 6], cl
jns 0x5506b5
dec eax
or eax, 0xffffff00
inc eax
mov ecx, dword [ebp + 0x1c]
mov byte [ecx + 7], al
movsx ecx, word [esp + 0x140]
mov eax, ecx
mov dword [esp + 0x24], ecx
cdq
and edx, 0xff
add eax, edx
mov edx, dword [ebp + 0x1c]
sar eax, 8
and ecx, 0x800000ff
mov byte [edx + 8], al
jns 0x5506eb
dec ecx
or ecx, 0xffffff00
inc ecx
mov eax, dword [ebp + 0x1c]
mov byte [eax + 9], cl
mov al, byte [ebp + 4]
test al, al
je 0x550791
lea ecx, [esp + 0x44]
call fcn.00559c60
lea ecx, [esp + 0x44]
mov byte [esp + 0x124], 3
call fcn.0055a260
mov ebx, dword [ebp + 0x1c]
lea ecx, [ebp + 0x20]
add ebx, 0xa
lea edx, [esp + 0x38]
mov dword [ebp + 0x1c], ebx
mov eax, dword [ecx + 8]
push edx
push 1
push eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 2
call fcn.0056e810
mov esi, dword [esp + 0x12c]
lea eax, [esp + 0x44]
push eax
mov ecx, esi
call fcn.005553f0
lea ecx, [esp + 0x54]
lea edi, [esi + 0x10]
push ecx
mov ecx, edi
mov byte [esp + 0x128], 4
call fcn.005525e0
mov dl, byte [esp + 0x64]
mov dword [esp + 0x40], 1
mov byte [edi + 0x10], dl
lea ecx, [esp + 0x44]
mov byte [esp + 0x124], 1
call fcn.00559d60
jmp 0x5510ba
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp]
push 0xa
push eax
call fcn.00569ed0
mov edi, dword [ebp + 0x18]
mov ecx, 0x3fff
xor eax, eax
push 0xffff
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, dword [ebp + 0x18]
push ecx
mov ecx, dword [ebp]
call fcn.0056a100
cmp eax, esi
jne 0x550eee
mov dl, byte [esp + 0x13]
push esi
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], dl
call fcn.00401850
and ebx, 0xff
lea eax, [esp + 0x90]
push ebx
push str.BYTE_ucAddressCode__0x_02X_
push eax
mov byte [esp + 0x130], 5
call fcn.005bcf3d
lea edi, [esp + 0x9c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x94]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00502fe0
mov edi, str._n__W_UINT16_ui16Parameter_
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str._n__W_UINT16_ui16Parameter_
lea ecx, [esp + 0x1c]
call fcn.00502fe0
mov bl, byte [esp + 0x134]
xor al, al
test bl, 1
je 0x55086c
mov edi, str.ACE_BPS_AUTO_RECOGNIZE
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.ACE_BPS_AUTO_RECOGNIZE
lea ecx, [esp + 0x1c]
call fcn.00502fe0
mov al, 1
test bl, 2
je 0x550957
test al, al
je 0x5508ea
mov edi, 0x60fed0
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [0x5e5150]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
mov ecx, dword [esp + 0x1c]
sub edx, ecx
cmp edx, ebp
ja 0x55089f
call fcn.005bc520
cmp ebp, esi
jbe 0x5508ea
mov eax, dword [esp + 0x1c]
push esi
lea ecx, [esp + 0x18]
lea ebx, [eax + ebp]
push ebx
call fcn.004018c0
test al, al
je 0x5508e3
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov esi, 0x60fed0
push ebx
lea edi, [edx + ecx]
mov ecx, ebp
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004018a0
mov bl, byte [esp + 0x134]
mov edi, str.ACE_KW2_REVERSE_TO_ECU
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [0x5e5150]
sub ecx, edx
cmp ecx, esi
ja 0x550910
call fcn.005bc520
test esi, esi
jbe 0x550955
mov edx, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x18]
lea ebp, [edx + esi]
push ebp
call fcn.004018c0
test al, al
je 0x550955
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push ebp
lea edi, [ecx + eax]
mov ecx, esi
mov edx, ecx
mov esi, str.ACE_KW2_REVERSE_TO_ECU
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004018a0
mov al, 1
test bl, 4
je 0x550a3a
test al, al
je 0x5509ce
mov edi, 0x60fed0
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x5e5150]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x550989
call fcn.005bc520
test esi, esi
jbe 0x5509ce
mov ecx, dword [esp + 0x1c]
push 0
lea ebp, [ecx + esi]
lea ecx, [esp + 0x18]
push ebp
call fcn.004018c0
test al, al
je 0x5509ce
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, 0x60fed0
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004018a0
mov edi, str.ACE_GET_ADDRESS_REVERSE_FROM_ECU
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x5e5150]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x5509f3
call fcn.005bc520
test esi, esi
jbe 0x550a38
mov ecx, dword [esp + 0x1c]
push 0
lea ebp, [ecx + esi]
lea ecx, [esp + 0x18]
push ebp
call fcn.004018c0
test al, al
je 0x550a38
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, str.ACE_GET_ADDRESS_REVERSE_FROM_ECU
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004018a0
mov al, 1
test bl, 8
je 0x550b1d
test al, al
je 0x550ab1
mov edi, 0x60fed0
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x5e5150]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x550a6c
call fcn.005bc520
test esi, esi
jbe 0x550ab1
mov ecx, dword [esp + 0x1c]
push 0
lea ebp, [ecx + esi]
lea ecx, [esp + 0x18]
push ebp
call fcn.004018c0
test al, al
je 0x550ab1
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, 0x60fed0
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004018a0
mov edi, str.ACE_RECEIVE_KW5
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x5e5150]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x550ad6
call fcn.005bc520
test esi, esi
jbe 0x550b1b
mov ecx, dword [esp + 0x1c]
push 0
lea ebp, [ecx + esi]
lea ecx, [esp + 0x18]
push ebp
call fcn.004018c0
test al, al
je 0x550b1b
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, str.ACE_RECEIVE_KW5
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004018a0
mov al, 1
test bl, 0x10
je 0x550c00
test al, al
je 0x550b94
mov edi, 0x60fed0
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x5e5150]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x550b4f
call fcn.005bc520
test esi, esi
jbe 0x550b94
mov ecx, dword [esp + 0x1c]
push 0
lea ebp, [ecx + esi]
lea ecx, [esp + 0x18]
push ebp
call fcn.004018c0
test al, al
je 0x550b94
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, 0x60fed0
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004018a0
mov edi, str.ACE_RECEIVE_ONE_FRAME
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x5e5150]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x550bb9
call fcn.005bc520
test esi, esi
jbe 0x550bfe
mov ecx, dword [esp + 0x1c]
push 0
lea ebp, [ecx + esi]
lea ecx, [esp + 0x18]
push ebp
call fcn.004018c0
test al, al
je 0x550bfe
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, str.ACE_RECEIVE_ONE_FRAME
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004018a0
mov al, 1
test bl, 0x80
je 0x550ce1
test al, al
je 0x550c77
mov edi, 0x60fed0
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x5e5150]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x550c32
call fcn.005bc520
test esi, esi
jbe 0x550c77
mov ecx, dword [esp + 0x1c]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x18]
push ebx
call fcn.004018c0
test al, al
je 0x550c77
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, 0x60fed0
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004018a0
mov edi, str.ACE_CLOSE_TRIGGER_CHANNEL
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x5e5150]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x550c9c
call fcn.005bc520
test esi, esi
jbe 0x550ce1
mov eax, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x18]
lea ebx, [eax + esi]
push ebx
call fcn.004018c0
test al, al
je 0x550ce1
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push ebx
lea edi, [edx + ecx]
mov ecx, esi
mov eax, ecx
mov esi, str.ACE_CLOSE_TRIGGER_CHANNEL
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004018a0
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push ecx
push edx
lea eax, [esp + 0x98]
push str.___n__W_FLOAT_fBps____9.1f_bps
push eax
call fcn.005bcf3d
lea edi, [esp + 0xa0]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x1c]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [0x5e5150]
sub ecx, edx
cmp ecx, esi
ja 0x550d28
call fcn.005bc520
test esi, esi
jbe 0x550d6f
mov edx, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x18]
lea ebx, [edx + esi]
push ebx
call fcn.004018c0
test al, al
je 0x550d6f
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push ebx
lea edi, [ecx + eax]
mov ecx, esi
mov edx, ecx
lea esi, [esp + 0x94]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004018a0
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x90]
push eax
push str.___n__W_INT16_i16ReverseKw2TimeInterval___d_mS
push ecx
call fcn.005bcf3d
lea edi, [esp + 0x9c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
mov edx, dword [0x5e5150]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [esp + 0x1c]
sub edx, ecx
cmp edx, esi
ja 0x550db1
call fcn.005bc520
test esi, esi
jbe 0x550df8
mov eax, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x18]
lea ebx, [eax + esi]
push ebx
call fcn.004018c0
test al, al
je 0x550df8
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push ebx
lea edi, [edx + ecx]
mov ecx, esi
mov eax, ecx
lea esi, [esp + 0x94]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004018a0
mov cl, byte [esp + 0x13]
sub esp, 0x10
mov ebp, esp
mov dword [esp + 0x34], esp
push 0
mov byte [ebp], cl
mov ecx, ebp
call fcn.00401850
mov edi, str.CCommWithEcu::AddressCodeEnter__
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
mov ecx, ebp
push ebx
call fcn.004018c0
test al, al
je 0x550e50
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
mov esi, str.CCommWithEcu::AddressCodeEnter__
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.004018a0
sub esp, 0x10
lea eax, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x58], esp
push eax
mov byte [esp + 0x148], 6
call fcn.00411fd0
push 0xfffffffffffffff6
lea ecx, [esp + 0x118]
mov byte [esp + 0x148], 5
call fcn.0054a100
mov esi, eax
mov cx, word [esi + 4]
lea edi, [esi + 8]
mov word [esp + 0x48], cx
mov bl, 7
mov dl, byte [edi]
push 0
lea ecx, [esp + 0x50]
mov byte [esp + 0x128], bl
mov byte [esp + 0x50], dl
call fcn.00401850
mov eax, dword [0x5e5150]
lea ecx, [esp + 0x4c]
push eax
push 0
push edi
call fcn.004120f0
add esi, 0x18
lea ecx, [esp + 0x5c]
push esi
mov byte [esp + 0x128], 8
call fcn.00411fd0
lea ecx, [esp + 0x44]
push 0x602fd0
push ecx
mov dword [esp + 0x4c], 0x5e7dd8
mov byte [esp + 0x12c], bl
call fcn.005bd65b
mov ebp, dword [ebp + 0x18]
add ebp, 8
movzx ax, byte [ebp]
inc ebp
cmp ax, si
jne 0x550f64
mov esi, dword [esp + 0x12c]
mov dl, byte [esp + 0x6c]
lea ecx, [esp + 0x6c]
mov byte [esi], dl
call fcn.0055f330
test eax, eax
jge 0x550f1b
xor eax, eax
shl eax, 4
push eax
call fcn.005bcf2f
mov ecx, dword [esp + 0x74]
add esp, 4
mov dword [esi + 4], eax
push eax
mov eax, dword [esp + 0x78]
push eax
push ecx
mov ecx, esi
call fcn.00555460
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
lea edx, [esp + 0x7c]
lea ecx, [esi + 0x10]
push edx
mov byte [esp + 0x128], 9
call fcn.0054b240
mov dword [esp + 0x40], 1
jmp 0x5510ba
mov cl, byte [esp + 0x13]
mov dword [esp + 0x2c], esi
mov byte [esp + 0x28], cl
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], esi
movsx ebx, ax
xor edi, edi
cmp ebx, esi
mov byte [esp + 0x124], 0xa
jle 0x551003
movzx si, byte [ebp]
inc ebp
test si, si
jle 0x550fe6
lea ecx, [esp + 0x24]
call fcn.00558060
push esi
push ebp
lea ecx, [esp + 0x2c]
mov byte [esp + 0x12c], 0xb
call fcn.00558600
mov eax, dword [esp + 0x30]
lea edx, [esp + 0x24]
push edx
push 1
push eax
lea ecx, [esp + 0x34]
call fcn.00402a90
movsx ecx, si
add ebp, ecx
lea ecx, [esp + 0x24]
mov byte [esp + 0x124], 0xa
call fcn.005581a0
mov ecx, dword [esp + 0x30]
inc edi
cmp edi, ebx
jl 0x550f8b
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x551003
sub ecx, eax
sar ecx, 2
je 0x551003
lea edx, [esp + 0x28]
lea ecx, [esp + 0x6c]
push edx
call fcn.00559fd0
mov esi, dword [esp + 0x12c]
mov ecx, dword [esp + 0x70]
mov al, byte [esp + 0x6c]
xor ebp, ebp
cmp ecx, ebp
mov byte [esi], al
jne 0x55101e
xor eax, eax
jmp 0x551027
mov eax, dword [esp + 0x74]
sub eax, ecx
sar eax, 4
cmp eax, ebp
jge 0x55102d
xor eax, eax
shl eax, 4
push eax
call fcn.005bcf2f
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
add esp, 4
mov dword [esi + 4], eax
push eax
push ecx
push edx
mov ecx, esi
call fcn.00555460
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
lea edi, [esi + 0x10]
lea eax, [esp + 0x7c]
push eax
mov ecx, edi
mov byte [esp + 0x128], 0xc
call fcn.005525e0
mov cl, byte [esp + 0x8c]
mov eax, dword [esp + 0x30]
mov byte [edi + 0x10], cl
mov edi, dword [esp + 0x2c]
cmp edi, eax
mov dword [esp + 0x40], 1
mov byte [esp + 0x124], 1
mov ebx, eax
je 0x5510a5
mov ecx, edi
call fcn.005581a0
add edi, 4
cmp edi, ebx
jne 0x551093
mov edi, dword [esp + 0x2c]
push edi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
lea ecx, [esp + 0x6c]
mov byte [esp + 0x124], 0
call fcn.00559d60
mov ecx, dword [esp + 0x11c]
mov eax, esi
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x118
ret 0x18