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

Disassembly:
push 0xffffffffffffffff
push 0x626fc0
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push ebp
push esi
push edi
mov eax, dword [0x7161c0]
xor eax, esp
push eax
lea eax, [esp + 0x64]
mov dword fs:[0], eax
mov esi, ecx
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x40], 0
mov ebx, dword [esp + 0x78]
mov ebp, dword [ebx - 0xc]
xor ecx, ecx
mov eax, ebp
mov edx, 0xc
mul edx
seto cl
mov dword [esp + 0x6c], 1
mov dword [esp + 0x18], ebp
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.005b4663
add esp, 4
test eax, eax
je 0x57e185
push 0x57b150
push 0x57b100
push ebp
mov dword [eax], ebp
add eax, 4
push 0xc
push eax
mov dword [esp + 0x44], eax
call fcn.005db6c0
mov ecx, dword [esp + 0x30]
jmp 0x57e187
xor ecx, ecx
xor eax, eax
test ebp, ebp
mov dword [esp + 0x14], ecx
jle 0x57e1ae
add ecx, 8
test eax, eax
jl 0x57e1c9
cmp eax, dword [ebx - 0xc]
jg 0x57e1c9
mov dx, word [ebx + eax*2]
mov word [ecx], dx
add eax, 1
add ecx, 0xc
cmp eax, ebp
jl 0x57e194
cmp dword [ebx - 0xc], 0
mov ebp, dword [ebx - 0x10]
lea eax, [ebx - 0x10]
je 0x57e208
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x57e1e1
cmp dword [ebx - 8], 0
jge 0x57e1d3
push 0x80070057
call fcn.00401470
mov dword [ebx - 0xc], 0
mov word [ebx], 0
jmp 0x57e208
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x57e1f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp]
mov eax, dword [edx + 0xc]
mov ecx, ebp
call eax
add eax, 0x10
mov dword [esp + 0x78], eax
movzx eax, word [edi + 0x10]
movzx ecx, word [edi + 0x12]
movzx edx, word [edi + 0xc]
movzx ebx, word [edi + 0xe]
push eax
push ecx
mov ecx, dword [esp + 0xa4]
push edx
push ebx
push ecx
call dword [sym.imp.USER32.dll_SetRect]
mov al, byte [edi + 4]
test al, al
mov cl, byte [edi + 5]
mov ebx, 2
jne 0x57e244
test cl, cl
jge 0x57e259
mov ebx, 1
jmp 0x57e2a7
jle 0x57e24a
test cl, cl
jl 0x57e2a7
test al, al
jge 0x57e264
test cl, cl
jge 0x57e262
mov ebx, 3
jmp 0x57e2a7
jle 0x57e280
mov ebx, 4
jmp 0x57e2a7
test al, al
jle 0x57e271
test cl, cl
jle 0x57e271
mov ebx, 5
jmp 0x57e2a7
test al, al
jge 0x57e28d
test cl, cl
jle 0x57e28b
mov ebx, 6
jmp 0x57e2a7
test cl, cl
jne 0x57e2a7
mov ebx, 7
jmp 0x57e2a7
test al, al
jle 0x57e29a
test cl, cl
jne 0x57e29a
mov ebx, 8
jmp 0x57e2a7
test al, al
jge 0x57e2a7
test cl, cl
jne 0x57e2a7
mov ebx, 9
mov eax, dword [esp + 0x78]
add eax, 0xfffffff0
push eax
call fcn.0041bc70
lea ebp, [eax + 0x10]
mov dword [esp + 0x44], ebp
push ebp
push ebx
lea edx, [esp + 0x84]
push str._an_d_s
push edx
mov byte [esp + 0x80], 2
call fcn.00469400
lea eax, [ebp - 0x10]
add esp, 0x14
mov byte [esp + 0x6c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x57e2fb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x80]
push str.serif
push ebx
call fcn.005dea2e
add esp, 8
test eax, eax
jne 0x57e31d
push 0xf
push str.Times_New_Roman
jmp 0x57e351
push str.sans_serif
push ebx
call fcn.005dea2e
add esp, 8
test eax, eax
jne 0x57e338
push 5
push str.Arial
jmp 0x57e351
push str.monospace
push ebx
call fcn.005dea2e
add esp, 8
test eax, eax
jne 0x57e35d
push 0xb
push str.Courier_New
lea ecx, [esp + 0x88]
call fcn.00419da0
mov eax, dword [esp + 0x78]
add eax, 0xfffffff0
push eax
call fcn.0041bc70
lea ebx, [eax + 0x10]
mov dword [esp + 0x44], ebx
mov ecx, dword [esp + 0x84]
push ebx
push ecx
lea edx, [esp + 0x84]
push str._fn_s_s
push edx
mov byte [esp + 0x80], 3
call fcn.00469400
add ebx, 0xfffffff0
add esp, 0x14
mov byte [esp + 0x6c], 1
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x57e3b8
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
call fcn.005bc43d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x57e3d2
push 0x80004005
call fcn.00401470
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
movzx ecx, byte [edi + 0x1f]
movzx eax, byte [edi + 0x1c]
mov edx, 0xff
sub edx, ecx
movzx ecx, byte [edi + 0x1d]
push edx
movzx edx, byte [edi + 0x1e]
push eax
push ecx
push edx
lea eax, [esp + 0x30]
push str.1c_02x_02x_02x1a_02x
push eax
mov byte [esp + 0x84], 4
call fcn.00469400
lea ecx, [esp + 0x90]
push ecx
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.004ab4f0
add esp, 0x24
push eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0x70], 5
call fcn.0041fb20
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x6c], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x57e462
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x78]
push ecx
lea ecx, [esp + 0x34]
call fcn.0041fed0
movzx edx, byte [edi + 0x1f]
mov eax, dword [eax]
mov ecx, 0xff
sub ecx, edx
movzx edx, byte [edi + 0x1c]
push ecx
movzx ecx, byte [edi + 0x1d]
push edx
movzx edx, byte [edi + 0x1e]
push ecx
push edx
push eax
lea ecx, [esp + 0x8c]
push str._s2c_02x_02x_02x2a_02x
push ecx
mov byte [esp + 0x88], 6
call fcn.00469400
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
add esp, 0x1c
mov byte [esp + 0x6c], 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x57e4d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.005bc43d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x57e4ea
push 0x80004005
call fcn.00401470
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
movzx ecx, byte [edi + 0x1b]
push ecx
lea edx, [esp + 0x2c]
push str._fs_d
push edx
mov byte [esp + 0x78], 7
call fcn.00469400
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x44]
push edx
call fcn.004ab4f0
add esp, 0x18
push eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0x70], 8
call fcn.0041fb20
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x6c], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x57e561
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.005bc43d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x57e57b
push 0x80004005
call fcn.00401470
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
movzx eax, byte [edi + 0x1a]
mov ecx, eax
mov edx, eax
shr ecx, 2
and ecx, 1
push ecx
shr edx, 1
and edx, 1
push edx
and eax, 1
push eax
lea eax, [esp + 0x30]
push str._b_di_du_d
push eax
mov byte [esp + 0x80], 9
call fcn.00469400
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x4c]
push eax
call fcn.004ab4f0
add esp, 0x20
push eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0x70], 0xa
call fcn.0041fb20
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x6c], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x57e609
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x84], 8
lea ebx, [edi + 8]
jle 0x57ec9b
lea ebx, [ebx]
movzx ecx, byte [esi + 2]
movzx edx, byte [esi + 3]
xor eax, eax
mov ah, byte [esi]
add esi, 4
add esi, 4
mov al, byte [esi - 7]
shl eax, 8
or eax, ecx
xor ecx, ecx
mov ch, byte [esi - 4]
shl eax, 8
or eax, edx
movzx edx, byte [esi - 2]
sub dword [esp + 0x84], eax
mov cl, byte [esi - 3]
sub eax, 8
add eax, esi
mov dword [esp + 0x40], eax
shl ecx, 8
or ecx, edx
movzx edx, byte [esi - 1]
shl ecx, 8
or ecx, edx
cmp ecx, 0x7374796c
jne 0x57e826
xor eax, eax
mov ah, byte [esi]
add esi, 2
mov al, byte [esi - 1]
movzx eax, ax
test ax, ax
jbe 0x57ec85
jmp 0x57e690
xor ecx, ecx
mov ch, byte [esi]
add esi, 2
xor edx, edx
mov dh, byte [esi]
add eax, 0xffff
add esi, 4
mov dword [esp + 0x38], eax
mov cl, byte [esi - 5]
movzx eax, byte [esi]
mov dl, byte [esi - 3]
add esi, 1
add esi, 1
movzx ecx, cx
mov edi, esi
movzx ebp, dx
movzx edx, ax
movzx eax, byte [esi - 1]
mov dword [esp + 0x34], edx
movzx edx, ax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], edx
movzx edx, bp
add esi, 4
cmp edx, eax
mov dword [esp + 0x30], ecx
jle 0x57e6e5
movzx ebp, ax
cmp cx, bp
jae 0x57e814
call fcn.005bc43d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x57e3c8
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
movzx ecx, byte [edi + 3]
movzx eax, byte [edi]
mov edx, 0xff
sub edx, ecx
movzx ecx, byte [edi + 1]
push edx
movzx edx, byte [edi + 2]
push eax
push ecx
push edx
lea eax, [esp + 0x2c]
push str.1c_02x_02x_02x1a_02x
push eax
mov byte [esp + 0x84], 0xb
call fcn.00469400
movzx eax, word [esp + 0x48]
mov edx, dword [esp + 0x2c]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x34]
add esp, 0x18
lea edi, [edx + ecx*4]
push eax
mov ecx, edi
call fcn.0057b9e0
mov edx, dword [esp + 0x14]
movzx eax, bp
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x20]
lea ebp, [edx + ecx*4 - 8]
push eax
mov ecx, ebp
call fcn.0057b9e0
movzx ecx, word [esp + 0x2c]
push ecx
lea edx, [esp + 0x20]
push str._fs_d
push edx
call fcn.00469400
mov eax, dword [esp + 0x28]
add esp, 0xc
push eax
mov ecx, edi
call fcn.0057b9e0
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, ebp
call fcn.0057b9e0
movzx eax, word [esp + 0x34]
mov edx, eax
shr edx, 2
mov ecx, eax
and edx, 1
push edx
shr ecx, 1
and ecx, 1
push ecx
and eax, 1
push eax
lea edx, [esp + 0x28]
push str._b_di_du_d
push edx
call fcn.00469400
mov eax, dword [esp + 0x30]
add esp, 0x14
push eax
mov ecx, edi
call fcn.0057b9e0
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, ebp
call fcn.0057b9e0
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x6c], 9
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x57e814
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
test ax, ax
ja 0x57e690
jmp 0x57ec85
cmp ecx, 0x68636c72
jne 0x57e835
mov ebx, esi
jmp 0x57ec85
cmp ecx, 0x686c6974
jne 0x57e93d
xor ecx, ecx
mov ch, byte [esi]
mov eax, dword [esp + 0x18]
xor edx, edx
mov dh, byte [esi + 2]
add esi, 2
mov cl, byte [esi - 1]
mov dl, byte [esi + 1]
movzx ebp, cx
movzx edi, dx
movzx ecx, di
cmp ecx, eax
jle 0x57e867
movzx edi, ax
cmp bp, di
jae 0x57ec85
call fcn.005bc43d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x57e3c8
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
movzx ecx, byte [ebx + 3]
movzx eax, byte [ebx]
mov edx, 0xff
sub edx, ecx
movzx ecx, byte [ebx + 1]
push edx
movzx edx, byte [ebx + 2]
push eax
push ecx
push edx
lea eax, [esp + 0x3c]
push str.3c_02x_02x_02x3a_02x
push eax
mov byte [esp + 0x84], 0xc
call fcn.00469400
mov edx, dword [esp + 0x2c]
movzx eax, bp
mov ebp, dword [esp + 0x44]
lea ecx, [eax + eax*2]
add esp, 0x18
lea esi, [edx + ecx*4]
push ebp
mov ecx, esi
call fcn.0057b9e0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
movzx eax, di
lea eax, [eax + eax*2]
lea edi, [ecx + eax*4 - 8]
push edx
mov ecx, edi
call fcn.0057b9e0
push str._bord0.1
mov ecx, esi
call fcn.0057b9e0
push 0x6486d8
mov ecx, edi
call fcn.0057b9e0
lea eax, [ebp - 0x10]
mov byte [esp + 0x6c], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x57ec85
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x57ec85
cmp ecx, 0x626c6e6b
jne 0x57ea4f
xor ecx, ecx
mov ch, byte [esi]
add esi, 2
xor eax, eax
mov ah, byte [esi]
mov cl, byte [esi - 1]
mov al, byte [esi + 1]
movzx edx, cx
mov ecx, dword [esp + 0x18]
movzx eax, ax
movzx esi, ax
cmp esi, ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x1c], eax
jle 0x57e97a
movzx eax, cx
mov dword [esp + 0x1c], eax
cmp dx, ax
jae 0x57ec85
xor esi, esi
cmp dword [esp + 0x98], esi
mov ebp, 0xff
jle 0x57ea30
call fcn.005bc43d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x57e3c8
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
push ebp
lea edi, [esi + 0x2ee]
push edi
push esi
lea ecx, [esp + 0x38]
push str._t__d___d___alphaH_02x_
push ecx
mov byte [esp + 0x80], 0xd
call fcn.00469400
movzx eax, word [esp + 0x4c]
mov esi, dword [esp + 0x40]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x28]
add esp, 0x14
push esi
lea ecx, [eax + edx*4]
call fcn.0057b9e0
lea eax, [esi - 0x10]
mov byte [esp + 0x6c], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x57ea18
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, 0xff
mov esi, edi
sub ecx, ebp
cmp esi, dword [esp + 0x98]
mov ebp, ecx
jl 0x57e997
movzx eax, word [esp + 0x1c]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
push str._alpha
lea ecx, [eax + edx*4 - 8]
call fcn.0057b9e0
jmp 0x57ec85
cmp ecx, 0x74626f78
jne 0x57ea95
mov eax, dword [esp + 0x9c]
xor ecx, ecx
mov ch, byte [esi]
xor edx, edx
add esi, 2
add esi, 2
add esi, 2
mov cl, byte [esi - 5]
mov dword [eax + 4], ecx
mov dh, byte [esi - 4]
xor ecx, ecx
mov dl, byte [esi - 3]
mov dword [eax], edx
mov ch, byte [esi - 2]
xor edx, edx
mov cl, byte [esi - 1]
mov dword [eax + 0xc], ecx
mov dh, byte [esi]
mov dl, byte [esi + 1]
mov dword [eax + 8], edx
jmp 0x57ec85
cmp ecx, 0x6b726f6b
jne 0x57ec85
mov eax, dword [esp + 0x7c]
test dword [eax], 0x800
jne 0x57ec85
movzx edx, byte [esi + 2]
movzx eax, byte [esi + 3]
xor ecx, ecx
mov ch, byte [esi]
add esi, 4
add esi, 2
mov cl, byte [esi - 5]
shl ecx, 8
or ecx, edx
shl ecx, 8
or ecx, eax
mov edi, ecx
xor ecx, ecx
mov ch, byte [esi - 2]
mov cl, byte [esi - 1]
movzx eax, cx
test ax, ax
mov dword [esp + 0x2c], eax
jbe 0x57ec85
lea ebx, [ebx]
movzx eax, byte [esi + 2]
movzx ecx, byte [esi + 3]
xor edx, edx
mov dh, byte [esi]
add esi, 4
add dword [esp + 0x2c], 0xffff
add esi, 2
add esi, 2
mov dl, byte [esi - 7]
shl edx, 8
or edx, eax
shl edx, 8
or edx, ecx
mov dword [esp + 0x30], edx
xor edx, edx
mov dh, byte [esi - 4]
xor eax, eax
mov ah, byte [esi - 2]
mov dl, byte [esi - 3]
mov al, byte [esi - 1]
movzx ecx, dx
movzx ebp, ax
mov eax, dword [esp + 0x18]
movzx edx, bp
cmp edx, eax
mov dword [esp + 0x38], ecx
jle 0x57eb46
movzx ebp, ax
cmp cx, bp
jae 0x57ec75
call fcn.005bc43d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x57e3c8
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x30]
sub ecx, edi
mov eax, 0xcccccccd
mul ecx
shr edx, 3
push edx
mov eax, 0xcccccccd
mul edi
shr edx, 3
push edx
lea edx, [esp + 0x24]
push str.kt_dkf_d
push edx
mov byte [esp + 0x7c], 0xe
call fcn.00469400
movzx eax, word [esp + 0x48]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
lea eax, [eax + eax*2]
add esp, 0x10
lea edi, [ecx + eax*4]
push edx
mov ecx, edi
call fcn.0057b9e0
movzx eax, byte [ebx + 3]
movzx edx, byte [ebx]
mov ecx, 0xff
sub ecx, eax
movzx eax, byte [ebx + 1]
push ecx
movzx ecx, byte [ebx + 2]
push edx
push eax
push ecx
lea edx, [esp + 0x2c]
push str.1c_02x_02x_02x1a_02x
push edx
call fcn.00469400
mov eax, dword [esp + 0x34]
add esp, 0x18
push eax
mov ecx, edi
call fcn.0057b9e0
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x40]
push str.kt
push edx
call fcn.004ab690
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
push eax
movzx eax, bp
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*4 - 8]
mov byte [esp + 0x70], 0xf
call fcn.0057b9e0
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0x6c], 0xe
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x57ec50
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x6c], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x57ec75
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp word [esp + 0x2c], 0
mov edi, dword [esp + 0x30]
ja 0x57eaf0
cmp dword [esp + 0x84], 8
mov esi, dword [esp + 0x40]
jg 0x57e620
mov edi, dword [esp + 0x7c]
test dword [edi], 0x800
je 0x57ee1d
call fcn.005bc43d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x57ecc1
push 0x80004005
call fcn.00401470
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
movzx ecx, byte [ebx + 3]
movzx eax, byte [ebx]
mov edx, 0xff
sub edx, ecx
movzx ecx, byte [ebx + 1]
push edx
movzx edx, byte [ebx + 2]
push eax
push ecx
push edx
lea eax, [esp + 0x2c]
push str.1c_02x_02x_02x1a_02x
push eax
mov byte [esp + 0x84], 0x10
call fcn.00469400
mov eax, dword [esp + 0x34]
mov ecx, dword [eax - 0xc]
add esp, 0x18
push ecx
push eax
lea ecx, [esp + 0x80]
call fcn.00444d80
mov esi, dword [esp + 0x18]
xor edx, edx
test esi, esi
mov dword [esp + 0x30], edx
jl 0x57ed47
mov eax, dword [esp + 0x14]
add eax, 8
lea ecx, [esi + 1]
cmp word [eax], 0xa
jne 0x57ed3b
add edx, 1
add eax, 0xc
sub ecx, 1
jne 0x57ed32
mov dword [esp + 0x30], edx
cmp esi, edx
jle 0x57edf8
mov eax, dword [esp + 0x98]
add eax, 0xfffffe0c
xor ecx, ecx
test eax, eax
setle cl
xor esi, esi
sub ecx, 1
and ecx, eax
mov dword [esp + 0x40], ecx
fild dword [esp + 0x40]
xor eax, eax
cmp dword [esp + 0x18], eax
fdiv qword [0x63a170]
fstp dword [esp + 0x3c]
jl 0x57edf8
mov ecx, dword [esp + 0x18]
xor ebp, ebp
lea ebx, [esi + 0xc]
cmp esi, ecx
je 0x57ed9c
mov edx, dword [esp + 0x14]
cmp word [ebx + edx - 4], 0xa
jne 0x57edee
mov edx, dword [esp + 0x18]
sub edx, dword [esp + 0x30]
mov ecx, esi
sub ecx, eax
mov dword [esp + 0x40], ecx
fild dword [esp + 0x40]
mov dword [esp + 0x40], edx
fmul dword [esp + 0x3c]
fidiv dword [esp + 0x40]
call fcn.005dc8a0
push eax
lea eax, [esp + 0x20]
push str.kf_d
push eax
call fcn.00469400
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
add esp, 0xc
push ecx
lea ecx, [edx + ebp]
call fcn.0057b9e0
mov ecx, dword [esp + 0x18]
lea eax, [esi + 1]
mov ebp, ebx
add esi, 1
add ebx, 0xc
cmp esi, ecx
jle 0x57ed8e
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x6c], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x57ee1d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x18], 0
mov dword [esp + 0x30], 0
jle 0x57eed7
mov ebx, dword [esp + 0x14]
add ebx, 4
mov eax, dword [ebx - 4]
push eax
lea ecx, [esp + 0x7c]
call fcn.0057ba90
movzx ecx, word [ebx + 4]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x78]
mov ebp, dword [ecx - 0xc]
mov eax, dword [ecx - 8]
mov edx, 1
sub edx, dword [ecx - 4]
lea esi, [ebp + 1]
sub eax, esi
or eax, edx
jge 0x57ee75
push esi
lea ecx, [esp + 0x7c]
call fcn.004195e0
mov ecx, dword [esp + 0x78]
test esi, esi
mov dx, word [esp + 0x40]
mov word [ecx + ebp*2], dx
jl 0x57e1c9
cmp esi, dword [ecx - 8]
jg 0x57e1c9
mov dword [ecx - 0xc], esi
mov word [ecx + esi*2], 0
test dword [edi], 0x20000
je 0x57eeb3
push 2
push 0x646e48
lea ecx, [esp + 0x80]
call fcn.00444d80
mov eax, dword [ebx]
push eax
lea ecx, [esp + 0x7c]
call fcn.0057ba90
mov eax, dword [esp + 0x30]
add eax, 1
add ebx, 0xc
cmp eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
jl 0x57ee37
cmp dword [esp + 0x14], 0
je 0x57eeff
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 4]
lea esi, [eax - 4]
push 0x57b150
push ecx
push 0xc
push eax
call fcn.005db5e3
push esi
call fcn.005b465e
add esp, 4
mov esi, dword [esp + 0x9c]
push esi
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
je 0x57ef2c
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
push edx
push eax
push 0
push 0
push esi
call dword [sym.imp.USER32.dll_SetRect]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
push ecx
push edx
push esi
call dword [sym.imp.USER32.dll_OffsetRect]
mov ecx, dword [esi + 4]
mov eax, dword [esi]
mov edx, dword [esi + 8]
push 0xfffffffffffffffe
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0xc]
push 0xfffffffffffffffe
lea ecx, [esp + 0x4c]
push ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
call dword [sym.imp.USER32.dll_InflateRect]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov edx, eax
xor ebx, ebx
sub edx, ecx
xor edi, edi
xor ebp, ebp
test edx, edx
mov dword [esp + 0x60], ebx
jle 0x57ef96
mov ebp, ecx
mov ecx, dword [esp + 0x8c]
sub ecx, eax
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
mov edx, eax
sub edx, ecx
test edx, edx
jle 0x57efb1
mov ebx, dword [esp + 0x88]
mov edi, ecx
sub ebx, eax
call fcn.005bc43d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x57efcb
push 0x80004005
call fcn.00401470
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [esp + 0x68]
push eax
push ecx
push edx
push ebp
push ebx
push edi
lea eax, [esp + 0x4c]
push str.0_0_Text___d__d__d__d__clip__d__d__d__d_
push eax
mov byte [esp + 0x94], 0x11
call fcn.00469400
mov esi, dword [esp + 0x9c]
lea ecx, [esp + 0xa0]
push ecx
lea edx, [esp + 0x58]
push edx
push esi
call fcn.004ab4f0
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
add esp, 0x34
mov byte [esp + 0x6c], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x57f04b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x6c], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x57f070
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x6c], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x57f095
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x6c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x57f0ba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x78]
add eax, 0xfffffff0
mov byte [esp + 0x6c], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x57f0df
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x80]
add eax, 0xfffffff0
mov dword [esp + 0x6c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x57f10a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
mov ecx, dword [esp + 0x64]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret