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

Disassembly:
push 0xffffffffffffffff
push 0x6d75bb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x514
mov eax, dword [esp + 0x530]
push ebx
mov ebx, ecx
push ebp
mov ecx, dword [esp + 0x53c]
push esi
mov dword [esp + 0x44], ecx
push edi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x40], 0
mov dword [ebx + 0xc], 0
mov dword [esp + 0x44], eax
call fcn.0061aaa0
mov byte [0x721928], 3
mov al, byte [ebx + 4]
test al, al
mov dword [esp + 0x52c], 1
jne 0x625b1a
mov edi, dword [ebx + 0x14]
mov ecx, 0x19
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [ebx + 0x14]
mov dword [ebx + 0x1c], edx
call fcn.00633960
test al, al
je 0x625d1f
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x625d1f
call fcn.00631a30
test eax, eax
je 0x625d1f
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
call fcn.004138c0
mov edi, str.CCommWithEcu::AddressCodeEnter_
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x18]
push ebp
call fcn.00414230
test al, al
je 0x625b96
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov edx, ecx
mov esi, str.CCommWithEcu::AddressCodeEnter_
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.00414210
mov ecx, dword [esp + 0x538]
lea eax, [esp + 0x70]
push 0xa
and ecx, 0xff
push eax
push ecx
mov byte [esp + 0x538], 2
call fcn.006a7cdb
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.0061d4f0
mov edi, 0x721c38
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x721c38
lea ecx, [esp + 0x1c]
call fcn.0061d4f0
mov eax, dword [esp + 0x53c]
lea edx, [esp + 0x70]
push 0xa
and eax, 0xffff
push edx
push eax
call fcn.006a7cdb
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.0061d4f0
mov edi, 0x721c38
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x721c38
lea ecx, [esp + 0x1c]
call fcn.0061d4f0
mov ecx, dword [esp + 0x544]
mov edx, dword [esp + 0x540]
push ecx
push edx
lea eax, [esp + 0x78]
push str._.2f
push eax
call fcn.006a6fa5
lea edi, [esp + 0x80]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x74]
push ecx
lea ecx, [esp + 0x1c]
call fcn.0061d4f0
mov edi, 0x721c38
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x721c38
lea ecx, [esp + 0x1c]
call fcn.0061d4f0
movsx eax, word [esp + 0x548]
lea edx, [esp + 0x70]
push 0xa
push edx
push eax
call fcn.006a7cdb
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.0061d4f0
mov edi, 0x721980
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x721980
lea ecx, [esp + 0x1c]
call fcn.0061d4f0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x625d01
mov eax, 0x6dd1f8
mov ecx, dword [ebx + 0x10]
push 0
push eax
call fcn.006324b0
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0x530], 1
call fcn.004138c0
mov ecx, dword [ebx + 0x1c]
fld qword [esp + 0x540]
fcom qword [0x6ddb88]
mov byte [ecx], 2
mov edx, dword [ebx + 0x1c]
mov cl, byte [esp + 0x538]
mov byte [edx + 1], 4
mov eax, dword [ebx + 0x1c]
mov byte [eax + 2], cl
xor cl, cl
fnstsw ax
mov byte [esp + 0x13], cl
test ah, 0x41
jne 0x625d6c
fmul qword [0x6dd240]
fcom qword [0x6ddb88]
inc cl
fnstsw ax
test ah, 0x41
je 0x625d53
mov byte [esp + 0x13], cl
fcom qword [0x6e45b0]
fnstsw ax
test ah, 1
je 0x625d92
fmul qword [0x6ddb88]
fcom qword [0x6e45b0]
dec cl
fnstsw ax
test ah, 1
jne 0x625d79
mov byte [esp + 0x13], cl
fmul qword [0x6dd240]
call fcn.006a7274
mov esi, dword [ebx + 0x1c]
mov cl, byte [esp + 0x13]
xor edx, edx
inc cl
mov dl, ah
mov byte [esi + 3], dl
mov edx, dword [ebx + 0x1c]
mov byte [edx + 4], al
mov eax, dword [ebx + 0x1c]
mov byte [eax + 5], cl
mov eax, dword [esp + 0x53c]
mov edx, dword [ebx + 0x1c]
xor ecx, ecx
mov cl, ah
and eax, 0xffff
and eax, 0x800000ff
mov byte [edx + 6], cl
jns 0x625ddd
dec eax
or eax, 0xffffff00
inc eax
mov ecx, dword [ebx + 0x1c]
movsx ebp, word [esp + 0x548]
mov byte [ecx + 7], al
mov eax, ebp
cdq
and edx, 0xff
add eax, edx
mov edx, dword [ebx + 0x1c]
sar eax, 8
mov byte [edx + 8], al
mov eax, ebp
and eax, 0x800000ff
jns 0x625e0f
dec eax
or eax, 0xffffff00
inc eax
mov ecx, dword [ebx + 0x1c]
mov byte [ecx + 9], al
mov al, byte [ebx + 4]
test al, al
je 0x625ece
lea ecx, [esp + 0x70]
call fcn.0061aaa0
lea ecx, [esp + 0x70]
mov byte [esp + 0x52c], 3
call fcn.0061b090
mov ebp, dword [ebx + 0x1c]
lea ecx, [ebx + 0x20]
add ebp, 0xa
lea edx, [esp + 0x44]
mov dword [ebx + 0x1c], ebp
mov eax, dword [ecx + 8]
push edx
push 1
push eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 2
call fcn.0062a0c0
mov esi, dword [esp + 0x534]
lea eax, [esp + 0x70]
push eax
mov ecx, esi
call fcn.004132b0
lea ecx, [esp + 0x80]
lea edi, [esi + 0x10]
push ecx
mov ecx, edi
mov byte [esp + 0x530], 4
call fcn.00406c50
mov dl, byte [esp + 0x90]
mov dword [esp + 0x40], 1
mov byte [edi + 0x10], dl
lea ecx, [esp + 0x70]
mov byte [esp + 0x52c], 1
call fcn.0061ab90
lea ecx, [esp + 0x4c]
mov byte [esp + 0x52c], 0
call fcn.0061ab90
mov eax, esi
jmp 0x626aef
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx]
push 0xa
push eax
call fcn.00642000
mov edi, dword [ebx + 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 [ebx + 0x18]
push ecx
mov ecx, dword [ebx]
call fcn.00642230
test eax, eax
jne 0x626643
mov dl, byte [esp + 0x13]
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], dl
call fcn.004138c0
mov eax, dword [esp + 0x538]
mov byte [esp + 0x52c], 5
and eax, 0xff
push eax
lea eax, [esp + 0x9c]
push str.BYTE_ucAddressCode__0x_02X_
push eax
call fcn.006a6fa5
lea edi, [esp + 0xa4]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.0061d4f0
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.0061d4f0
mov bl, byte [esp + 0x53c]
xor al, al
test bl, 1
je 0x625fad
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.0061d4f0
mov al, 1
test bl, 2
je 0x626099
test al, al
je 0x626025
mov edi, 0x721a28
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [0x6dd1fc]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [esp + 0x1c]
sub edx, ecx
cmp edx, esi
ja 0x625fe0
call fcn.006a64db
test esi, esi
jbe 0x626025
mov eax, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x18]
lea ebx, [eax + esi]
push ebx
call fcn.00414230
test al, al
je 0x626025
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push ebx
lea edi, [edx + ecx]
mov ecx, esi
mov eax, ecx
mov esi, 0x721a28
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.00414210
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 [0x6dd1fc]
sub ecx, edx
cmp ecx, esi
ja 0x62604b
call fcn.006a64db
test esi, esi
jbe 0x626090
mov edx, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x18]
lea ebx, [edx + esi]
push ebx
call fcn.00414230
test al, al
je 0x626090
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push ebx
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.00414210
mov bl, byte [esp + 0x53c]
mov al, 1
test bl, 4
je 0x626183
test al, al
je 0x626110
mov edi, 0x721a28
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x6dd1fc]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x6260cb
call fcn.006a64db
test esi, esi
jbe 0x626110
mov ecx, dword [esp + 0x1c]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x18]
push ebx
call fcn.00414230
test al, al
je 0x626110
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, 0x721a28
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.00414210
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 [0x6dd1fc]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x626135
call fcn.006a64db
test esi, esi
jbe 0x62617a
mov ecx, dword [esp + 0x1c]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x18]
push ebx
call fcn.00414230
test al, al
je 0x62617a
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 ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00414210
mov bl, byte [esp + 0x53c]
mov al, 1
test bl, 8
je 0x62626d
test al, al
je 0x6261fa
mov edi, 0x721a28
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x6dd1fc]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x6261b5
call fcn.006a64db
test esi, esi
jbe 0x6261fa
mov ecx, dword [esp + 0x1c]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x18]
push ebx
call fcn.00414230
test al, al
je 0x6261fa
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, 0x721a28
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.00414210
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 [0x6dd1fc]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x62621f
call fcn.006a64db
test esi, esi
jbe 0x626264
mov ecx, dword [esp + 0x1c]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x18]
push ebx
call fcn.00414230
test al, al
je 0x626264
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 ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00414210
mov bl, byte [esp + 0x53c]
mov al, 1
test bl, 0x10
je 0x626357
test al, al
je 0x6262e4
mov edi, 0x721a28
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x6dd1fc]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x62629f
call fcn.006a64db
test esi, esi
jbe 0x6262e4
mov ecx, dword [esp + 0x1c]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x18]
push ebx
call fcn.00414230
test al, al
je 0x6262e4
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, 0x721a28
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.00414210
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 [0x6dd1fc]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x626309
call fcn.006a64db
test esi, esi
jbe 0x62634e
mov ecx, dword [esp + 0x1c]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x18]
push ebx
call fcn.00414230
test al, al
je 0x62634e
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 ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00414210
mov bl, byte [esp + 0x53c]
mov al, 1
test bl, 0x80
je 0x626438
test al, al
je 0x6263ce
mov edi, 0x721a28
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
mov eax, dword [0x6dd1fc]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x626389
call fcn.006a64db
test esi, esi
jbe 0x6263ce
mov ecx, dword [esp + 0x1c]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x18]
push ebx
call fcn.00414230
test al, al
je 0x6263ce
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, esi
mov esi, 0x721a28
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.00414210
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 [0x6dd1fc]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x6263f3
call fcn.006a64db
test esi, esi
jbe 0x626438
mov eax, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x18]
lea ebx, [eax + esi]
push ebx
call fcn.00414230
test al, al
je 0x626438
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.00414210
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
push ecx
push edx
lea eax, [esp + 0xa0]
push str.___n__W_FLOAT_fBps____9.1f_bps
push eax
call fcn.006a6fa5
lea edi, [esp + 0xa8]
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 [0x6dd1fc]
sub ecx, edx
cmp ecx, esi
ja 0x62647f
call fcn.006a64db
test esi, esi
jbe 0x6264c6
mov edx, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x18]
lea ebx, [edx + esi]
push ebx
call fcn.00414230
test al, al
je 0x6264c6
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 + 0x9c]
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.00414210
push ebp
lea eax, [esp + 0x9c]
push str.___n__W_INT16_i16ReverseKw2TimeInterval___d_mS
push eax
call fcn.006a6fa5
lea edi, [esp + 0xa4]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x1c]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [0x6dd1fc]
sub ecx, edx
cmp ecx, esi
ja 0x626504
call fcn.006a64db
test esi, esi
jbe 0x62654b
mov edx, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x18]
lea ebx, [edx + esi]
push ebx
call fcn.00414230
test al, al
je 0x62654b
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 + 0x9c]
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.00414210
mov al, byte [esp + 0x13]
sub esp, 0x10
mov ebx, esp
mov dword [esp + 0x38], esp
push 0
mov ecx, ebx
mov byte [ebx], al
call fcn.004138c0
mov edi, str.CCommWithEcu::AddressCodeEnter__
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
mov ecx, ebx
push ebp
call fcn.00414230
test al, al
je 0x6265a2
mov edi, dword [ebx + 4]
mov ecx, ebp
mov edx, ecx
mov esi, str.CCommWithEcu::AddressCodeEnter__
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]
mov ecx, ebx
call fcn.00414210
sub esp, 0x10
lea eax, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
mov byte [esp + 0x550], 6
call fcn.00413060
push 0xfffffffffffffff6
lea ecx, [esp + 0x120]
mov byte [esp + 0x550], 5
call fcn.00630ad0
mov esi, eax
mov cx, word [esi + 4]
lea edi, [esi + 8]
mov word [esp + 0x74], cx
mov bl, 7
mov dl, byte [edi]
push 0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x530], bl
mov byte [esp + 0x7c], dl
call fcn.004138c0
mov eax, dword [0x6dd1fc]
lea ecx, [esp + 0x78]
push eax
push 0
push edi
call fcn.004136c0
add esi, 0x18
lea ecx, [esp + 0x88]
push esi
mov byte [esp + 0x530], 8
call fcn.00413060
lea ecx, [esp + 0x70]
push 0x70c400
push ecx
mov dword [esp + 0x78], 0x6e45a0
mov byte [esp + 0x534], bl
call fcn.006a7ca1
mov esi, dword [ebx + 0x18]
add esi, 8
movzx ax, byte [esi]
inc esi
test ax, ax
jne 0x6266cb
mov esi, dword [esp + 0x534]
mov dl, byte [esp + 0x4c]
lea ecx, [esp + 0x4c]
mov byte [esi], dl
call fcn.00648110
test eax, eax
jge 0x62666f
xor eax, eax
shl eax, 4
push eax
call fcn.006a6832
mov ecx, dword [esp + 0x54]
add esp, 4
mov dword [esi + 4], eax
push eax
mov eax, dword [esp + 0x58]
push eax
push ecx
mov ecx, esi
call fcn.00413b00
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
lea edx, [esp + 0x5c]
lea ecx, [esi + 0x10]
push edx
mov byte [esp + 0x530], 9
call fcn.004066c0
lea ecx, [esp + 0x4c]
mov dword [esp + 0x40], 1
mov byte [esp + 0x52c], 0
call fcn.0061ab90
mov eax, esi
jmp 0x626aef
mov cl, byte [esp + 0x13]
mov byte [esp + 0x30], cl
xor ecx, ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
movsx eax, ax
xor ebp, ebp
cmp eax, ecx
mov byte [esp + 0x52c], 0xa
mov dword [esp + 0x28], eax
jle 0x626771
movzx di, byte [esi]
inc esi
test di, di
jle 0x626754
lea ecx, [esp + 0x24]
call fcn.0061d780
push edi
push esi
lea ecx, [esp + 0x2c]
mov byte [esp + 0x534], 0xb
call fcn.0061dd20
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x24]
push edx
push 1
push eax
lea ecx, [esp + 0x3c]
call fcn.00414350
movsx ecx, di
add esi, ecx
lea ecx, [esp + 0x24]
mov byte [esp + 0x52c], 0xa
call fcn.0061d8c0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
inc ebp
cmp ebp, eax
jl 0x6266f6
mov eax, dword [esp + 0x34]
test eax, eax
je 0x626771
sub ecx, eax
sar ecx, 2
je 0x626771
lea edx, [esp + 0x30]
lea ecx, [esp + 0x4c]
push edx
call fcn.0061ae00
call fcn.00633960
test al, al
je 0x626a17
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x626a17
call fcn.00631a30
test eax, eax
je 0x626a17
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
call fcn.004138c0
mov edi, 0x72ba88
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x18]
push ebp
call fcn.00414230
test al, al
je 0x6267ef
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov edx, ecx
mov esi, 0x72ba88
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [eax + ebp], 0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x52c], 0xc
call fcn.0061d780
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x124]
mov byte [esp + 0x124], 0
rep stosd dword es:[edi], eax
xor esi, esi
lea ecx, [esp + 0x4c]
mov byte [esp + 0x52c], 0xd
mov dword [esp + 0x28], esi
call fcn.0061b070
test ax, ax
jle 0x6269d9
mov dword [esp + 0x24], 0
push esi
lea ecx, [esp + 0x50]
call fcn.0061b060
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x6269c0
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x24]
sub edx, ecx
sar edx, 2
cmp eax, edx
jae 0x6269c0
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea ecx, [esp + 0x54]
call fcn.0061b060
mov ecx, eax
call fcn.00690c60
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0061d790
lea ecx, [esp + 0x30]
call fcn.0061dab0
lea ecx, [esp + 0x2c]
call fcn.0061dc60
lea ecx, [esp + 0x2c]
mov ebp, eax
xor esi, esi
call fcn.0061dc40
test ax, ax
jle 0x6268df
lea edi, [esp + 0x124]
xor edx, edx
mov dl, byte [esi + ebp]
push edx
push str._.2X
push edi
call fcn.006a6fa5
add esp, 0xc
lea ecx, [esp + 0x2c]
inc esi
add edi, 3
call fcn.0061dc40
movsx eax, ax
cmp esi, eax
jl 0x6268b7
mov edi, str.Ans:
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x18]
push ebp
call fcn.00414230
test al, al
je 0x626925
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov edx, ecx
mov esi, str.Ans:
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [eax + ebp], 0
lea edi, [esp + 0x124]
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 [0x6dd1fc]
sub ecx, edx
cmp ecx, esi
ja 0x62694d
call fcn.006a64db
test esi, esi
jbe 0x626996
mov edx, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x18]
lea ebp, [edx + esi]
push ebp
call fcn.00414230
test al, al
je 0x626996
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, esi
lea esi, [esp + 0x124]
lea edi, [edx + eax]
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]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [ecx + ebp], 0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x6269a3
mov eax, 0x6dd1f8
mov ecx, dword [ebx + 0x10]
push 0
push eax
call fcn.006324b0
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
inc eax
mov dword [esp + 0x24], eax
jmp 0x626840
inc esi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], esi
call fcn.0061b070
movsx edx, ax
cmp esi, edx
jl 0x626838
lea ecx, [esp + 0x2c]
mov byte [esp + 0x52c], 0xc
call fcn.0061d8c0
mov eax, dword [esp + 0x18]
mov byte [esp + 0x52c], 0xa
test eax, eax
je 0x626a17
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x626a0e
cmp al, 0xff
je 0x626a0e
dec al
mov byte [ecx], al
jmp 0x626a17
push ecx
call fcn.006a64d0
add esp, 4
mov ebx, dword [esp + 0x534]
mov ecx, dword [esp + 0x50]
mov al, byte [esp + 0x4c]
test ecx, ecx
mov byte [ebx], al
jne 0x626a30
xor eax, eax
jmp 0x626a39
mov eax, dword [esp + 0x54]
sub eax, ecx
sar eax, 4
test eax, eax
jge 0x626a3f
xor eax, eax
shl eax, 4
push eax
call fcn.006a6832
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
add esp, 4
cmp edi, ecx
mov dword [ebx + 4], eax
mov ebp, ecx
mov esi, eax
je 0x626a72
push edi
push esi
call fcn.00415140
add edi, 0x10
add esp, 8
add esi, 0x10
cmp edi, ebp
jne 0x626a5e
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], esi
lea ecx, [esp + 0x5c]
lea esi, [ebx + 0x10]
push ecx
mov ecx, esi
mov byte [esp + 0x530], 0xe
call fcn.00413240
mov dl, byte [esp + 0x6c]
mov eax, dword [esp + 0x38]
mov byte [esi + 0x10], dl
mov esi, dword [esp + 0x34]
cmp esi, eax
mov dword [esp + 0x40], 1
mov byte [esp + 0x52c], 1
mov edi, eax
je 0x626ac6
mov ecx, esi
call fcn.0061d8c0
add esi, 4
cmp esi, edi
jne 0x626ab4
mov esi, dword [esp + 0x34]
push esi
call fcn.006a64d0
xor eax, eax
add esp, 4
lea ecx, [esp + 0x4c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov byte [esp + 0x52c], al
call fcn.0061ab90
mov eax, ebx
mov ecx, dword [esp + 0x524]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x520
ret 0x18