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

Disassembly:
push 0xffffffffffffffff
push 0x6097c0
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6f1550]
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.0059b05a
add esp, 4
test eax, eax
je 0x5696e5
push 0x58b500
push 0x5666b0
push ebp
mov dword [eax], ebp
add eax, 4
push 0xc
push eax
mov dword [esp + 0x44], eax
call fcn.005c050e
mov ecx, dword [esp + 0x30]
jmp 0x5696e7
xor ecx, ecx
xor eax, eax
test ebp, ebp
mov dword [esp + 0x14], ecx
jle 0x56970e
add ecx, 8
test eax, eax
jl 0x569729
cmp eax, dword [ebx - 0xc]
jg 0x569729
mov dx, word [ebx + eax*2]
mov word [ecx], dx
add eax, 1
add ecx, 0xc
cmp eax, ebp
jl 0x5696f4
cmp dword [ebx - 0xc], 0
mov ebp, dword [ebx - 0x10]
lea eax, [ebx - 0x10]
je 0x569768
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x569741
cmp dword [ebx - 8], 0
jge 0x569733
push 0x80070057
call fcn.00401480
mov dword [ebx - 0xc], 0
mov word [ebx], 0
jmp 0x569768
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x569757
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 0x5697a4
test cl, cl
jge 0x5697b9
mov ebx, 1
jmp 0x569807
jle 0x5697aa
test cl, cl
jl 0x569807
test al, al
jge 0x5697c4
test cl, cl
jge 0x5697c2
mov ebx, 3
jmp 0x569807
jle 0x5697e0
mov ebx, 4
jmp 0x569807
test al, al
jle 0x5697d1
test cl, cl
jle 0x5697d1
mov ebx, 5
jmp 0x569807
test al, al
jge 0x5697ed
test cl, cl
jle 0x5697eb
mov ebx, 6
jmp 0x569807
test cl, cl
jne 0x569807
mov ebx, 7
jmp 0x569807
test al, al
jle 0x5697fa
test cl, cl
jne 0x5697fa
mov ebx, 8
jmp 0x569807
test al, al
jge 0x569807
test cl, cl
jne 0x569807
mov ebx, 9
mov eax, dword [esp + 0x78]
add eax, 0xfffffff0
push eax
call fcn.00414870
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.0045a920
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 0x56985b
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.005c3fa9
add esp, 8
test eax, eax
jne 0x56987d
push 0xf
push str.Times_New_Roman
jmp 0x5698b1
push str.sans_serif
push ebx
call fcn.005c3fa9
add esp, 8
test eax, eax
jne 0x569898
push 5
push str.Arial
jmp 0x5698b1
push str.monospace
push ebx
call fcn.005c3fa9
add esp, 8
test eax, eax
jne 0x5698bd
push 0xb
push str.Courier_New
lea ecx, [esp + 0x88]
call fcn.00412960
mov eax, dword [esp + 0x78]
add eax, 0xfffffff0
push eax
call fcn.00414870
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.0045a920
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 0x569918
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
call fcn.005a2e2e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x569932
push 0x80004005
call fcn.00401480
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.0045a920
lea ecx, [esp + 0x90]
push ecx
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.0049a930
add esp, 0x24
push eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0x70], 5
call fcn.004189d0
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 0x5699c2
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.00418ef0
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.0045a920
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 0x569a30
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.005a2e2e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x569a4a
push 0x80004005
call fcn.00401480
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.0045a920
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x44]
push edx
call fcn.0049a930
add esp, 0x18
push eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0x70], 8
call fcn.004189d0
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 0x569ac1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.005a2e2e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x569adb
push 0x80004005
call fcn.00401480
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.0045a920
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x4c]
push eax
call fcn.0049a930
add esp, 0x20
push eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0x70], 0xa
call fcn.004189d0
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 0x569b69
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 0x56a1fb
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 0x569d86
xor eax, eax
mov ah, byte [esi]
add esi, 2
mov al, byte [esi - 1]
movzx eax, ax
test ax, ax
jbe 0x56a1e5
jmp 0x569bf0
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 0x569c45
movzx ebp, ax
cmp cx, bp
jae 0x569d74
call fcn.005a2e2e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x569928
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.0045a920
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.00566f40
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.00566f40
movzx ecx, word [esp + 0x2c]
push ecx
lea edx, [esp + 0x20]
push str._fs_d
push edx
call fcn.0045a920
mov eax, dword [esp + 0x28]
add esp, 0xc
push eax
mov ecx, edi
call fcn.00566f40
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, ebp
call fcn.00566f40
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.0045a920
mov eax, dword [esp + 0x30]
add esp, 0x14
push eax
mov ecx, edi
call fcn.00566f40
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, ebp
call fcn.00566f40
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 0x569d74
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 0x569bf0
jmp 0x56a1e5
cmp ecx, 0x68636c72
jne 0x569d95
mov ebx, esi
jmp 0x56a1e5
cmp ecx, 0x686c6974
jne 0x569e9d
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 0x569dc7
movzx edi, ax
cmp bp, di
jae 0x56a1e5
call fcn.005a2e2e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x569928
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.0045a920
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.00566f40
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.00566f40
push str._bord0.1
mov ecx, esi
call fcn.00566f40
push 0x629488
mov ecx, edi
call fcn.00566f40
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 0x56a1e5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x56a1e5
cmp ecx, 0x626c6e6b
jne 0x569faf
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 0x569eda
movzx eax, cx
mov dword [esp + 0x1c], eax
cmp dx, ax
jae 0x56a1e5
xor esi, esi
cmp dword [esp + 0x98], esi
mov ebp, 0xff
jle 0x569f90
call fcn.005a2e2e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x569928
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.0045a920
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.00566f40
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 0x569f78
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 0x569ef7
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.00566f40
jmp 0x56a1e5
cmp ecx, 0x74626f78
jne 0x569ff5
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 0x56a1e5
cmp ecx, 0x6b726f6b
jne 0x56a1e5
mov eax, dword [esp + 0x7c]
test dword [eax], 0x800
jne 0x56a1e5
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 0x56a1e5
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 0x56a0a6
movzx ebp, ax
cmp cx, bp
jae 0x56a1d5
call fcn.005a2e2e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x569928
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.0045a920
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.00566f40
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.0045a920
mov eax, dword [esp + 0x34]
add esp, 0x18
push eax
mov ecx, edi
call fcn.00566f40
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x40]
push str.kt
push edx
call fcn.0049aad0
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.00566f40
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 0x56a1b0
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 0x56a1d5
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 0x56a050
cmp dword [esp + 0x84], 8
mov esi, dword [esp + 0x40]
jg 0x569b80
mov edi, dword [esp + 0x7c]
test dword [edi], 0x800
je 0x56a37d
call fcn.005a2e2e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x56a221
push 0x80004005
call fcn.00401480
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.0045a920
mov eax, dword [esp + 0x34]
mov ecx, dword [eax - 0xc]
add esp, 0x18
push ecx
push eax
lea ecx, [esp + 0x80]
call fcn.00436fa0
mov esi, dword [esp + 0x18]
xor edx, edx
test esi, esi
mov dword [esp + 0x30], edx
jl 0x56a2a7
mov eax, dword [esp + 0x14]
add eax, 8
lea ecx, [esi + 1]
cmp word [eax], 0xa
jne 0x56a29b
add edx, 1
add eax, 0xc
sub ecx, 1
jne 0x56a292
mov dword [esp + 0x30], edx
cmp esi, edx
jle 0x56a358
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 [0x61b0f0]
fstp dword [esp + 0x3c]
jl 0x56a358
mov ecx, dword [esp + 0x18]
xor ebp, ebp
lea ebx, [esi + 0xc]
cmp esi, ecx
je 0x56a2fc
mov edx, dword [esp + 0x14]
cmp word [ebx + edx - 4], 0xa
jne 0x56a34e
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.005c2100
push eax
lea eax, [esp + 0x20]
push str.kf_d
push eax
call fcn.0045a920
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
add esp, 0xc
push ecx
lea ecx, [edx + ebp]
call fcn.00566f40
mov ecx, dword [esp + 0x18]
lea eax, [esi + 1]
mov ebp, ebx
add esi, 1
add ebx, 0xc
cmp esi, ecx
jle 0x56a2ee
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 0x56a37d
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 0x56a437
mov ebx, dword [esp + 0x14]
add ebx, 4
mov eax, dword [ebx - 4]
push eax
lea ecx, [esp + 0x7c]
call fcn.00566ff0
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 0x56a3d5
push esi
lea ecx, [esp + 0x7c]
call fcn.004121e0
mov ecx, dword [esp + 0x78]
test esi, esi
mov dx, word [esp + 0x40]
mov word [ecx + ebp*2], dx
jl 0x569729
cmp esi, dword [ecx - 8]
jg 0x569729
mov dword [ecx - 0xc], esi
mov word [ecx + esi*2], 0
test dword [edi], 0x20000
je 0x56a413
push 2
push 0x627bfc
lea ecx, [esp + 0x80]
call fcn.00436fa0
mov eax, dword [ebx]
push eax
lea ecx, [esp + 0x7c]
call fcn.00566ff0
mov eax, dword [esp + 0x30]
add eax, 1
add ebx, 0xc
cmp eax, dword [esp + 0x18]
mov dword [esp + 0x30], eax
jl 0x56a397
cmp dword [esp + 0x14], 0
je 0x56a45f
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 4]
lea esi, [eax - 4]
push 0x58b500
push ecx
push 0xc
push eax
call fcn.005c03e7
push esi
call fcn.0059b05f
add esp, 4
mov esi, dword [esp + 0x9c]
push esi
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
je 0x56a48c
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 0x56a4f6
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 0x56a511
mov ebx, dword [esp + 0x88]
mov edi, ecx
sub ebx, eax
call fcn.005a2e2e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x56a52b
push 0x80004005
call fcn.00401480
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.0045a920
mov esi, dword [esp + 0x9c]
lea ecx, [esp + 0xa0]
push ecx
lea edx, [esp + 0x58]
push edx
push esi
call fcn.0049a930
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 0x56a5ab
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 0x56a5d0
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 0x56a5f5
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 0x56a61a
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 0x56a63f
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 0x56a66a
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