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

Disassembly:
push 0xffffffffffffffff
push 0x4488d6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x78
push ebx
push ebp
xor ebx, ebx
push esi
push edi
mov esi, ecx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], vtable.CFont.0
mov eax, dword [0x48b448]
mov dword [esp + 0x90], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov eax, 0x44b708
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x80]
mov edi, dword [esp + 0x98]
cmp eax, ebx
mov byte [esp + 0x90], 7
jne 0x415e26
push 0x10
call fcn.0043c073
add esp, 4
mov dword [esp + 0x3c], eax
cmp eax, ebx
mov byte [esp + 0x90], 8
je 0x415d7b
mov ecx, eax
call fcn.00440ed1
mov ebp, eax
jmp 0x415d7d
xor ebp, ebp
cmp edi, ebx
mov byte [esp + 0x90], 7
mov dword [esi + 0x80], ebp
jne 0x415d93
xor eax, eax
jmp 0x415d96
mov eax, dword [edi + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
mov ecx, ebp
call fcn.00440f88
mov eax, dword [esi + 0x34]
mov ebp, dword [esi + 0x2c]
mov ecx, dword [esi + 0x30]
mov ebx, dword [esi + 0x28]
sub eax, ebp
sub ecx, ebx
push eax
mov eax, dword [edi + 4]
push ecx
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
lea ecx, [esp + 0x5c]
call fcn.004416cd
mov ecx, dword [esi + 0x80]
mov ebp, dword [esp + 0x5c]
lea eax, [esp + 0x58]
mov ecx, dword [ecx + 4]
neg eax
sbb eax, eax
and eax, ebp
push eax
push ecx
call fcn.004410c9
mov edx, dword [esi + 0x2c]
mov eax, dword [esi + 0x34]
mov ebp, dword [esi + 0x28]
mov ecx, edx
sub eax, ecx
mov ecx, dword [esi + 0x30]
mov ebx, ebp
sub ecx, ebx
test edi, edi
jne 0x415e05
xor ebx, ebx
jmp 0x415e08
mov ebx, dword [edi + 4]
push 0xcc0020
push edx
push ebp
push ebx
push eax
mov eax, dword [esi + 0x80]
xor ebx, ebx
push ecx
mov edx, dword [eax + 4]
push ebx
push ebx
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x2c]
mov ebp, dword [esi + 0x28]
mov edx, dword [esi + 0x80]
sub eax, ecx
mov ecx, dword [esi + 0x30]
sub ecx, ebp
cmp edx, ebx
jne 0x415e44
xor edx, edx
jmp 0x415e47
mov edx, dword [edx + 4]
push 0xcc0020
push ebx
push ebx
push edx
push eax
mov eax, dword [esi + 0x2c]
push ecx
push eax
mov eax, dword [edi + 4]
push ebp
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
cmp dword [esi + 0x88], ebx
jne 0x415f54
push 0x10
call fcn.0043c073
add esp, 4
mov dword [esp + 0x3c], eax
cmp eax, ebx
mov byte [esp + 0x90], 9
je 0x415e91
mov ecx, eax
call fcn.00440ed1
mov ebp, eax
jmp 0x415e93
xor ebp, ebp
cmp edi, ebx
mov byte [esp + 0x90], 7
mov dword [esi + 0x88], ebp
jne 0x415ea9
xor eax, eax
jmp 0x415eac
mov eax, dword [edi + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
mov ecx, ebp
call fcn.00440f88
mov eax, dword [esi + 0x9c]
mov ecx, dword [esi + 0x94]
mov ebp, dword [esi + 0x90]
sub eax, ecx
mov ecx, dword [esi + 0x98]
push eax
sub ecx, ebp
push ecx
mov ecx, dword [edi + 4]
push ecx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
lea ecx, [esp + 0x54]
call fcn.004416cd
mov ecx, dword [esi + 0x88]
mov edx, dword [esp + 0x54]
lea eax, [esp + 0x50]
neg eax
sbb eax, eax
and eax, edx
mov edx, dword [ecx + 4]
push eax
push edx
call fcn.004410c9
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0x9c]
mov ebp, dword [esi + 0x90]
mov ecx, edx
sub eax, ecx
mov ecx, dword [esi + 0x98]
mov ebx, ebp
sub ecx, ebx
test edi, edi
jne 0x415f33
xor ebx, ebx
jmp 0x415f36
mov ebx, dword [edi + 4]
push 0xcc0020
push edx
push ebp
push ebx
push eax
mov eax, dword [esi + 0x88]
xor ebx, ebx
push ecx
mov eax, dword [eax + 4]
push ebx
push ebx
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
cmp dword [esi + 0x8c], ebx
jne 0x416048
push 0x10
call fcn.0043c073
add esp, 4
mov dword [esp + 0x3c], eax
cmp eax, ebx
mov byte [esp + 0x90], 0xa
je 0x415f85
mov ecx, eax
call fcn.00440ed1
mov ebp, eax
jmp 0x415f87
xor ebp, ebp
cmp edi, ebx
mov byte [esp + 0x90], 7
mov dword [esi + 0x8c], ebp
jne 0x415f9d
xor eax, eax
jmp 0x415fa0
mov eax, dword [edi + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
mov ecx, ebp
call fcn.00440f88
mov eax, dword [esi + 0xac]
mov ecx, dword [esi + 0xa4]
mov ebp, dword [esi + 0xa0]
sub eax, ecx
mov ecx, dword [esi + 0xa8]
push eax
sub ecx, ebp
push ecx
mov ecx, dword [edi + 4]
push ecx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
lea ecx, [esp + 0x4c]
call fcn.004416cd
mov ecx, dword [esi + 0x8c]
mov edx, dword [esp + 0x4c]
lea eax, [esp + 0x48]
neg eax
sbb eax, eax
and eax, edx
mov edx, dword [ecx + 4]
push eax
push edx
call fcn.004410c9
mov edx, dword [esi + 0xa4]
mov eax, dword [esi + 0xac]
mov ebp, dword [esi + 0xa0]
mov ecx, edx
sub eax, ecx
mov ecx, dword [esi + 0xa8]
mov ebx, ebp
sub ecx, ebx
test edi, edi
jne 0x416027
xor ebx, ebx
jmp 0x41602a
mov ebx, dword [edi + 4]
push 0xcc0020
push edx
push ebp
push ebx
push eax
mov eax, dword [esi + 0x8c]
xor ebx, ebx
push ecx
mov eax, dword [eax + 4]
push ebx
push ebx
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
cmp dword [esi + 0x18], ebx
jne 0x416054
mov dword [esi + 0x18], 7
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x34]
sub eax, ecx
mov dword [esp + 0x6c], ecx
cdq
xor eax, edx
mov dword [esp + 0x74], ecx
sub eax, edx
push 1
cdq
idiv dword [esi + 0x18]
mov edx, dword [esi + 0x20]
mov ecx, edi
add edx, 2
mov dword [esp + 0x6c], edx
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x74], eax
call fcn.00441191
mov edx, dword [edi]
lea eax, [esi + 0x58]
push eax
mov ecx, edi
call dword [edx + 0x28]
mov eax, dword [esi + 0x68]
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x30]
cmp dword [esi + 0x10], ebx
jg 0x4160c0
push ecx
lea edx, [esi + 0xc0]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
call fcn.0043b918
mov ecx, esi
call fcn.004167d0
mov eax, dword [0x48b448]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0xc]
mov byte [esp + 0x90], 0xc
cmp eax, ebx
jne 0x4160df
dec dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
or eax, 0xffffffff
cmp ecx, eax
jge 0x4160ec
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
lea ecx, [esp + 0x28]
inc eax
push eax
push 0x4591bc
push ecx
call fcn.0043a116
mov edx, dword [esi + 0xc]
add esp, 0xc
lea eax, [esp + 0x24]
push edx
push 0x4591bc
push eax
call fcn.0043a116
mov ecx, dword [esp + 0x34]
add esp, 0xc
push ecx
push str.CurPage
push 0x45926c
push ebx
push ebx
push 1
push 0x97
push 0x4a7870
call fcn.0043d682
mov edx, dword [esp + 0x44]
add esp, 0x20
push edx
push str.TotalPage
push 0x45926c
push ebx
push ebx
push 1
push 0x97
push 0x4a7870
call fcn.0043d682
mov eax, dword [edi]
add esp, 0x20
lea ecx, [esi + 0xb0]
push ecx
mov ecx, edi
call dword [eax + 0x28]
mov eax, dword [esi + 0xb8]
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x30]
mov eax, dword [esi + 0x18]
mov dword [esp + 0x20], ebx
cmp eax, ebx
jle 0x4164e5
mov ecx, dword [esi + 0x14]
lea eax, [ecx + ebx]
mov ecx, dword [esi + 8]
cmp eax, ecx
jge 0x4164e5
lea ecx, [eax + eax*4]
lea edx, [ecx + ecx*8]
mov ecx, dword [esi + 0x7c]
lea eax, [eax + edx*2]
lea edx, [ecx + eax*2 + 0xa]
lea ecx, [esp + 0x14]
push edx
call fcn.0043bd2c
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
push 0x48f63c
mov ebp, dword [eax - 8]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x70], eax
add eax, ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x78], eax
call fcn.0043bd2c
mov eax, dword [esi + 0x14]
add eax, ebx
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*8]
lea edx, [eax + ecx*2]
mov eax, dword [esi + 0x7c]
lea ecx, [eax + edx*2]
push ecx
lea ecx, [esp + 0x1c]
call fcn.0043bd2c
cmp ebp, dword [esi + 0x1c]
jle 0x4163f0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x70]
sub eax, ecx
push 2
cdq
xor eax, edx
lea ecx, [esp + 0x1c]
sub eax, edx
cdq
idiv ebp
lea edx, [esp + 0x34]
push edx
mov ebp, eax
call fcn.00439d26
mov eax, dword [eax]
push 0x459c44
push eax
call fcn.0042c273
add esp, 8
lea ecx, [esp + 0x30]
test eax, eax
sete bl
call fcn.0043bba3
test bl, bl
push 0
je 0x4162ac
push str.MenuFontKoreaSize
push str.NPinyinMenu
mov ecx, 0x48f560
call fcn.00401ab0
push 0
mov ebx, eax
push 0
push str.MenuFontKorea
lea eax, [esp + 0x40]
push str.NPinyinMenu
push eax
mov ecx, 0x48f560
call fcn.00401980
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x94], 0xd
call fcn.0043bcdc
lea ecx, [esp + 0x34]
mov byte [esp + 0x90], 0xc
call fcn.0043bba3
mov ecx, dword [esp + 0x1c]
push ecx
jmp 0x416307
push str.MenuFontSize
push str.NPinyinMenu
mov ecx, 0x48f560
call fcn.00401ab0
push 0
push 0
push str.MenuFont
lea edx, [esp + 0x44]
push str.NPinyinMenu
push edx
mov ecx, 0x48f560
mov ebx, eax
call fcn.00401980
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x94], 0xe
call fcn.0043bcdc
lea ecx, [esp + 0x38]
mov byte [esp + 0x90], 0xc
call fcn.0043bba3
mov eax, dword [esp + 0x1c]
push eax
push 0
push 0
push 0
push 0
push 1
push 0
push 0
push 0
push 0
push 0
push 0
push ebp
push ebx
call dword [sym.imp.GDI32.dll_CreateFontA]
push eax
lea ecx, [esp + 0x44]
call fcn.004416cd
mov edx, dword [edi]
lea eax, [esp + 0x40]
push eax
mov ecx, edi
call dword [edx + 0x28]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
add ecx, 2
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x68]
add edx, 2
add ecx, 2
mov dword [esp + 0x84], edx
mov edx, dword [edi]
add eax, 2
mov dword [esp + 0x78], ecx
push 0x464646
mov ecx, edi
mov dword [esp + 0x84], eax
call dword [edx + 0x30]
mov eax, dword [esp + 0x14]
mov edx, dword [edi]
lea ebx, [esp + 0x78]
push 0x24
mov ecx, dword [eax - 8]
push ebx
push ecx
push eax
mov ecx, edi
call dword [edx + 0x68]
mov eax, dword [esi + 0x14]
mov ebx, dword [esp + 0x20]
add eax, ebx
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*8]
lea edx, [eax + ecx*2]
mov eax, dword [esi + 0x7c]
lea ecx, [eax + edx*2]
push ecx
mov ecx, 0x4a7f80
call fcn.0041a990
mov edx, dword [edi]
test eax, eax
je 0x4163be
mov eax, dword [esi + 0x64]
jmp 0x4163c1
mov eax, dword [esi + 0x60]
push eax
mov ecx, edi
call dword [edx + 0x30]
mov eax, dword [esp + 0x14]
mov edx, dword [edi]
lea ebx, [esp + 0x68]
push 0x24
mov ecx, dword [eax - 8]
push ebx
push ecx
push eax
mov ecx, edi
call dword [edx + 0x68]
lea ecx, [esp + 0x40]
call fcn.00441724
mov ebx, dword [esp + 0x20]
jmp 0x4164d5
lea eax, [esp + 0x3c]
push 2
push eax
lea ecx, [esp + 0x20]
call fcn.00439d26
mov eax, dword [eax]
push 0x459c44
push eax
call fcn.0042c273
add esp, 8
lea ecx, [esp + 0x3c]
test eax, eax
sete byte [esp + 0x13]
call fcn.0043bba3
mov al, byte [esp + 0x13]
mov edx, dword [edi]
test al, al
lea eax, [esi + 0x50]
jne 0x416430
lea eax, [esi + 0x48]
push eax
mov ecx, edi
call dword [edx + 0x28]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
add ecx, 2
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x68]
add edx, 2
add ecx, 2
mov dword [esp + 0x84], edx
mov edx, dword [edi]
add eax, 2
mov dword [esp + 0x78], ecx
push 0x464646
mov ecx, edi
mov dword [esp + 0x84], eax
call dword [edx + 0x30]
mov eax, dword [esp + 0x14]
mov edx, dword [edi]
lea ebp, [esp + 0x78]
push 0x24
mov ecx, dword [eax - 8]
push ebp
push ecx
push eax
mov ecx, edi
call dword [edx + 0x68]
mov eax, dword [esi + 0x14]
add eax, ebx
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*8]
lea edx, [eax + ecx*2]
mov eax, dword [esi + 0x7c]
lea ecx, [eax + edx*2]
push ecx
mov ecx, 0x4a7f80
call fcn.0041a990
mov edx, dword [edi]
test eax, eax
je 0x4164b5
mov eax, dword [esi + 0x64]
jmp 0x4164b8
mov eax, dword [esi + 0x60]
push eax
mov ecx, edi
call dword [edx + 0x30]
mov eax, dword [esp + 0x14]
mov edx, dword [edi]
lea ebp, [esp + 0x68]
push 0x24
mov ecx, dword [eax - 8]
push ebp
push ecx
push eax
mov ecx, edi
call dword [edx + 0x68]
mov eax, dword [esi + 0x18]
inc ebx
cmp ebx, eax
mov dword [esp + 0x20], ebx
jl 0x41618e
mov ecx, edi
call fcn.00440ff0
lea ecx, [esp + 0x24]
mov byte [esp + 0x90], 0xb
call fcn.0043bba3
lea ecx, [esp + 0x28]
mov byte [esp + 0x90], 7
call fcn.0043bba3
mov esi, vtable.CGdiObject.0
mov dword [esp + 0x48], esi
lea ecx, [esp + 0x48]
mov byte [esp + 0x90], 0xf
call fcn.00441724
mov dword [esp + 0x50], esi
lea ecx, [esp + 0x50]
mov byte [esp + 0x90], 0x10
call fcn.00441724
mov dword [esp + 0x60], esi
lea ecx, [esp + 0x60]
mov byte [esp + 0x90], 0x11
call fcn.00441724
mov dword [esp + 0x58], esi
lea ecx, [esp + 0x58]
mov byte [esp + 0x90], 0x12
call fcn.00441724
lea ecx, [esp + 0x18]
mov byte [esp + 0x90], 2
call fcn.0043bba3
lea ecx, [esp + 0x14]
mov byte [esp + 0x90], 1
call fcn.0043bba3
lea ecx, [esp + 0x1c]
mov byte [esp + 0x90], 0
call fcn.0043bba3
mov dword [esp + 0x40], esi
lea ecx, [esp + 0x40]
mov dword [esp + 0x90], 0x13
call fcn.00441724
mov ecx, dword [esp + 0x88]
pop edi
pop esi
pop ebp
mov eax, 1
mov dword fs:[0], ecx
pop ebx
add esp, 0x84
ret 4