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

Disassembly:
sub esp, 0xe8
mov eax, dword [0x9c48d0]
xor eax, esp
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xec]
push ebx
push ebp
mov ebp, dword [esp + 0xfc]
mov dword [esp + 0x20], eax
xor eax, eax
push esi
mov esi, dword [esp + 0xfc]
push edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], eax
mov edi, str.RenderTransform
mov eax, ebp
mov dword [esp + 0x78], ecx
mov dword [esp + 0x54], edx
call fcn.004cb930
mov dword [esp + 0x58], eax
mov edi, str.Clip
mov eax, ebp
call fcn.004cb930
mov dword [esp + 0x48], eax
mov edi, str.Data
mov eax, ebp
call fcn.004cb930
mov dword [esp + 0x4c], eax
mov edi, str.Fill
mov eax, ebp
call fcn.004cb930
mov dword [esp + 0x50], eax
mov edi, str.Stroke
mov eax, ebp
call fcn.004cb930
mov dword [esp + 0x2c], eax
mov edi, str.Opacity
mov eax, ebp
call fcn.004cb930
mov dword [esp + 0x68], eax
mov edi, str.OpacityMask
mov eax, ebp
call fcn.004cb930
mov ebx, eax
mov edi, str.StrokeDashArray
mov eax, ebp
call fcn.004cb930
mov dword [esp + 0x14], eax
mov edi, str.StrokeDashCap
mov eax, ebp
call fcn.004cb930
mov dword [esp + 0x90], eax
mov edi, str.StrokeDashOffset
mov eax, ebp
call fcn.004cb930
mov dword [esp + 0x20], eax
mov edi, str.StrokeEndLineCap
mov eax, ebp
call fcn.004cb930
mov dword [esp + 0x7c], eax
mov edi, str.StrokeStartLineCap
mov eax, ebp
call fcn.004cb930
mov dword [esp + 0x84], eax
mov edi, str.StrokeLineJoin
mov eax, ebp
call fcn.004cb930
mov dword [esp + 0x88], eax
mov edi, str.StrokeMiterLimit
mov eax, ebp
call fcn.004cb930
mov dword [esp + 0x74], eax
mov edi, str.StrokeThickness
mov eax, ebp
call fcn.004cb930
mov dword [esp + 0x8c], eax
mov edi, str.FixedPage.NavigateUri
mov eax, ebp
call fcn.004cb930
mov edi, dword [ebp + 0x34]
mov dword [esp + 0x80], eax
test edi, edi
je 0x52dbcb
mov ecx, str.Path.RenderTransform
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52da96
test dl, dl
je 0x52da92
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52da96
add eax, 2
add ecx, 2
test dl, dl
jne 0x52da76
xor eax, eax
jmp 0x52da9b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52daa6
mov eax, dword [edi + 0x34]
mov dword [esp + 0x34], eax
mov ecx, str.Path.OpacityMask
mov eax, edi
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52dad0
test dl, dl
je 0x52dacc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52dad0
add eax, 2
add ecx, 2
test dl, dl
jne 0x52dab0
xor eax, eax
jmp 0x52dad5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52dae0
mov ecx, dword [edi + 0x34]
mov dword [esp + 0x44], ecx
mov ecx, str.Path.Clip
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52db07
test dl, dl
je 0x52db03
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52db07
add eax, 2
add ecx, 2
test dl, dl
jne 0x52dae7
xor eax, eax
jmp 0x52db0c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52db17
mov edx, dword [edi + 0x34]
mov dword [esp + 0x40], edx
mov ecx, str.Path.Fill
mov eax, edi
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52db40
test dl, dl
je 0x52db3c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52db40
add eax, 2
add ecx, 2
test dl, dl
jne 0x52db20
xor eax, eax
jmp 0x52db45
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52db50
mov eax, dword [edi + 0x34]
mov dword [esp + 0x38], eax
mov ecx, str.Path.Stroke
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52db77
test dl, dl
je 0x52db73
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52db77
add eax, 2
add ecx, 2
test dl, dl
jne 0x52db57
xor eax, eax
jmp 0x52db7c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52db87
mov ecx, dword [edi + 0x34]
mov dword [esp + 0x30], ecx
mov ecx, str.Path.Data
mov eax, edi
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52dbb0
test dl, dl
je 0x52dbac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52dbb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x52db90
xor eax, eax
jmp 0x52dbb5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52dbc0
mov edx, dword [edi + 0x34]
mov dword [esp + 0x3c], edx
mov edi, dword [edi + 0x3c]
test edi, edi
jne 0x52da6f
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x70], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x54]
je 0x52dbfd
mov ecx, dword [esp + 0x4c]
push esi
xor edi, edi
call fcn.0052b3c0
add esp, 4
test eax, eax
je 0x52dbfd
mov dword [esp + 0x4c], edi
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x52dc1c
push esi
xor edi, edi
call fcn.0052b3c0
add esp, 4
test eax, eax
je 0x52dc1c
mov dword [esp + 0x48], edi
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x52dc3b
push esi
xor edi, edi
call fcn.0052b3c0
add esp, 4
test eax, eax
je 0x52dc3b
mov dword [esp + 0x58], edi
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x52dc60
push esi
lea edi, [esp + 0x74]
call fcn.0052b3c0
add esp, 4
test eax, eax
je 0x52dc60
mov dword [esp + 0x50], 0
mov dword [esp + 0x38], eax
cmp dword [esp + 0x2c], 0
je 0x52dc88
mov ecx, dword [esp + 0x2c]
push esi
lea edi, [esp + 0x64]
call fcn.0052b3c0
add esp, 4
test eax, eax
je 0x52dc88
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], eax
test ebx, ebx
je 0x52dca3
push esi
lea edi, [esp + 0x60]
mov ecx, ebx
call fcn.0052b3c0
add esp, 4
test eax, eax
je 0x52dca3
mov dword [esp + 0x44], eax
cmp dword [esp + 0x4c], 0
jne 0x52dcb5
cmp dword [esp + 0x3c], 0
je 0x52e704
mov esi, dword [esp + 0x38]
test esi, esi
je 0x52dd21
movsx eax, byte [esi]
neg eax
sbb eax, eax
and eax, esi
mov ecx, str.SolidColorBrush
jmp 0x52dcd0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52dcf0
test dl, dl
je 0x52dcec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52dcf0
add eax, 2
add ecx, 2
test dl, dl
jne 0x52dcd0
xor eax, eax
jmp 0x52dcf5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52dd21
mov edi, str.Opacity
mov eax, esi
call fcn.004cb930
mov dword [esp + 0x64], eax
mov edi, str.Color
mov eax, esi
call fcn.004cb930
mov dword [esp + 0x50], eax
mov dword [esp + 0x38], 0
mov esi, dword [esp + 0x30]
test esi, esi
je 0x52dd86
movsx eax, byte [esi]
neg eax
sbb eax, eax
and eax, esi
mov ecx, str.SolidColorBrush
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52dd57
test dl, dl
je 0x52dd53
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52dd57
add eax, 2
add ecx, 2
test dl, dl
jne 0x52dd37
xor eax, eax
jmp 0x52dd5c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52dd86
mov edi, str.Opacity
mov eax, esi
call fcn.004cb930
mov dword [esp + 0x6c], eax
mov edi, str.Color
mov eax, esi
call fcn.004cb930
xor esi, esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], esi
cmp dword [esp + 0x2c], 0
mov edx, 1
jne 0x52dd9a
test esi, esi
je 0x52e040
mov eax, dword [esp + 0x14]
test eax, eax
je 0x52ddd7
mov cl, byte [eax]
test cl, cl
je 0x52ddd7
cmp cl, 0x20
jne 0x52ddb7
lea ecx, [ecx]
add eax, edx
cmp byte [eax], 0x20
je 0x52ddb0
mov cl, byte [eax]
test cl, cl
je 0x52ddd7
add dword [esp + 0x1c], edx
cmp cl, 0x20
je 0x52ddd1
mov cl, byte [eax + edx]
add eax, edx
test cl, cl
jne 0x52ddc1
jmp 0x52ddd7
mov cl, byte [eax]
test cl, cl
jne 0x52dda8
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x48]
call fcn.004bfc60
mov esi, dword [esp + 0x84]
mov edi, eax
mov dword [esp + 0x18], edi
call fcn.0052d750
mov esi, dword [esp + 0x90]
mov dword [edi + 4], eax
call fcn.0052d750
mov esi, dword [esp + 0x7c]
mov dword [edi + 8], eax
call fcn.0052d750
mov ebx, dword [esp + 0x88]
mov esi, 3
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], esi
test ebx, ebx
je 0x52ded0
mov ecx, str.Miter
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52de55
test dl, dl
je 0x52de51
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52de55
add eax, 2
add ecx, 2
test dl, dl
jne 0x52de35
xor eax, eax
jmp 0x52de5a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52de61
mov dword [edi + 0x10], esi
mov ecx, str.Round
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52de88
test dl, dl
je 0x52de84
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52de88
add eax, 2
add ecx, 2
test dl, dl
jne 0x52de68
xor eax, eax
jmp 0x52de8d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52de98
mov dword [edi + 0x10], 1
mov ecx, str.Bevel
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52dec0
test dl, dl
je 0x52debc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52dec0
add eax, 2
add ecx, 2
test dl, dl
jne 0x52dea0
xor eax, eax
jmp 0x52dec5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52ded0
mov dword [edi + 0x10], 2
mov eax, dword [esp + 0x74]
fld dword [0x9ade10]
fstp dword [edi + 0x18]
test eax, eax
je 0x52deed
push eax
call fcn.004eef20
fstp dword [edi + 0x18]
add esp, 4
fld1
mov eax, dword [esp + 0x8c]
fstp dword [edi + 0x14]
test eax, eax
je 0x52df09
push eax
call fcn.004eef20
fstp dword [edi + 0x14]
add esp, 4
fldz
mov esi, dword [esp + 0x14]
fstp dword [edi + 0x1c]
mov dword [edi + 0x20], 0
test esi, esi
je 0x52e040
mov eax, dword [esp + 0x20]
test eax, eax
je 0x52df38
push eax
call fcn.004eef20
fmul dword [edi + 0x14]
add esp, 4
fstp dword [edi + 0x1c]
mov al, byte [esi]
test al, al
je 0x52df95
mov edi, dword [esp + 0x18]
mov ebx, 1
cmp al, 0x20
jne 0x52df57
jmp 0x52df50
add esi, ebx
cmp byte [esi], 0x20
je 0x52df50
cmp byte [esi], 0
je 0x52df95
push esi
call fcn.004eef20
fmul dword [edi + 0x14]
mov edx, dword [edi + 0x20]
add esp, 4
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [edi + edx*4 + 0x24]
add dword [edi + 0x20], ebx
mov al, byte [esi]
test al, al
je 0x52df95
cmp al, 0x20
je 0x52df8f
mov al, byte [esi + ebx]
add esi, ebx
test al, al
jne 0x52df80
jmp 0x52df95
mov al, byte [esi]
test al, al
jne 0x52df47
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x52e035
fldz
xor edx, edx
fst dword [esp + 0x14]
cmp eax, 4
jl 0x52dffd
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0xfffffffc
shr ecx, 2
add eax, 0x28
inc ecx
lea edx, [ecx*4]
fld dword [eax - 4]
add eax, 0x10
dec ecx
fadd dword [esp + 0x14]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fadd dword [eax - 0x10]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fadd dword [eax - 0xc]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fadd dword [eax - 8]
fstp dword [esp + 0x14]
jne 0x52dfc7
mov eax, dword [esp + 0x1c]
cmp edx, eax
jge 0x52e020
mov eax, dword [esp + 0x18]
lea ecx, [eax + edx*4 + 0x24]
mov eax, dword [esp + 0x1c]
sub eax, edx
fld dword [esp + 0x14]
add ecx, 4
dec eax
fadd dword [ecx - 4]
fstp dword [esp + 0x14]
jne 0x52e00f
fld dword [esp + 0x14]
fucompp
fnstsw ax
test ah, 0x44
jp 0x52e035
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [edx + 0x20], ecx
cmp dword [esp + 0x58], 0
mov eax, dword [0x7b7da4]
mov ecx, dword [0x7b7da8]
mov edx, dword [0x7b7dac]
mov dword [esp + 0x94], eax
mov eax, dword [0x7b7db0]
mov dword [esp + 0x98], ecx
mov ecx, dword [0x7b7db4]
mov dword [esp + 0x9c], edx
mov edx, dword [0x7b7db8]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], edx
je 0x52e0a3
mov ecx, dword [esp + 0x58]
lea ebx, [esp + 0x94]
call fcn.0052aba0
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x28]
test esi, esi
je 0x52e0bf
lea eax, [esp + 0x94]
call fcn.0052ac40
mov ecx, dword [esp + 0x78]
lea edx, [esp + 0x94]
lea eax, [esp + 0xbc]
call fcn.004bdca0
cmp dword [esp + 0x48], 0
jne 0x52e0e4
cmp dword [esp + 0x40], 0
je 0x52e101
mov eax, dword [esp + 0x48]
push eax
lea ecx, [esp + 0xc0]
push ecx
mov ecx, dword [esp + 0x48]
mov edx, ebx
mov esi, edi
call fcn.0052d840
add esp, 8
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], 0
test eax, eax
je 0x52e125
lea edx, [esp + 0x14]
push edx
push edi
call fcn.0052bfc0
add esp, 8
mov dword [esp + 0x24], eax
jmp 0x52e16f
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x52e16f
lea ecx, [esp + 0x14]
push ecx
push 0
push eax
push edi
mov eax, ebx
call fcn.0052d4a0
add esp, 0x10
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x24], eax
jne 0x52e152
cmp dword [esp + 0x30], 0
je 0x52e16f
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x14]
push edx
push 1
push eax
push edi
mov eax, ebx
call fcn.0052d4a0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x52e173
mov esi, dword [esp + 0x24]
cmp dword [esp + 0x2c], 0
jne 0x52e1a1
cmp dword [esp + 0x30], 0
jne 0x52e1a1
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0xac]
push ecx
push 0
push edx
lea edi, [esp + 0xc8]
call fcn.004bf7e0
add esp, 0xc
jmp 0x52e201
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xac]
push eax
push ecx
push esi
lea edi, [esp + 0xc8]
call fcn.004bf7e0
mov eax, dword [esp + 0x30]
add esp, 0xc
cmp esi, eax
je 0x52e201
cmp dword [esp + 0x50], 0
jne 0x52e1d4
cmp dword [esp + 0x38], 0
je 0x52e201
lea edx, [esp + 0x94]
push edx
push 0
push eax
lea edi, [esp + 0xc8]
call fcn.004bf7e0
add esp, 0xc
lea edx, [esp + 0x94]
lea ecx, [esp + 0xac]
call fcn.004be9a0
mov ebp, dword [ebp + 0x2c]
test ebp, ebp
je 0x52e24b
jmp 0x52e210
mov ecx, 0x98aab4
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52e237
test dl, dl
je 0x52e233
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52e237
add eax, 2
add ecx, 2
test dl, dl
jne 0x52e217
xor eax, eax
jmp 0x52e23c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x52e368
mov ebp, dword [ebp + 0x2c]
test ebp, ebp
jne 0x52e210
xor eax, eax
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x80]
push eax
lea eax, [esp + 0xb0]
push eax
push ebp
xor eax, eax
call fcn.004f4940
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x68]
add esp, 0xc
push ecx
push edx
push ebx
push eax
lea ecx, [esp + 0xbc]
push ecx
lea edx, [esp + 0xd0]
push edx
push ebp
call fcn.0052a9b0
mov edx, dword [esp + 0x6c]
add esp, 0x1c
test edx, edx
je 0x52e372
lea eax, [esp + 0xd4]
push eax
push ebp
lea ecx, [esp + 0x3c]
call fcn.0052ad80
mov eax, dword [esp + 0x6c]
add esp, 8
test eax, eax
je 0x52e2d9
push eax
call fcn.004eef20
fmul dword [esp + 0xd8]
add esp, 4
fstp dword [esp + 0xd4]
mov edx, dword [esp + 0x34]
xor eax, eax
mov dword [ebp + 0x188], edx
cmp dword [edx + 0x1c], eax
jle 0x52e302
lea ecx, [ebp + 0x18c]
fld dword [esp + eax*4 + 0xd8]
inc eax
fstp dword [ecx]
add ecx, 4
cmp eax, dword [edx + 0x1c]
jl 0x52e2f0
mov ecx, dword [ebp + 0x184]
fld dword [ebp + ecx*4 + 0x84]
mov eax, dword [ebp + 0x1b4]
fmul dword [esp + 0xd4]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fst dword [ebp + 0x1ac]
cmp dword [eax + 0x74], 0
jne 0x52e370
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x52e370
push ecx
fstp dword [esp]
lea edx, [ebp + 0x18c]
push edx
mov edx, dword [ebp + 0x188]
push edx
lea edx, [esp + 0xc8]
push edx
xor edx, edx
cmp dword [esp + 0x24], edx
sete dl
push edx
mov edx, dword [esp + 0x38]
push edx
push eax
call ecx
add esp, 0x1c
jmp 0x52e372
mov eax, dword [ebp + 0x28]
jmp 0x52e24d
fstp st(0)
mov edi, dword [esp + 0x38]
test edi, edi
je 0x52e423
xor ecx, ecx
cmp dword [esp + 0x14], ecx
lea eax, [esp + 0xbc]
sete cl
push eax
mov eax, dword [esp + 0x28]
lea edx, [esp + 0xb0]
push ecx
mov ecx, dword [ebp + 0x1b4]
push edx
push eax
push ecx
call fcn.004d0950
mov edx, dword [esp + 0x84]
add esp, 0x14
push edi
push ebx
push edx
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0xcc]
push ecx
push ebp
call fcn.0052a6e0
mov eax, dword [ebp + 0x1b4]
mov ecx, dword [eax + 0x74]
add esp, 0x18
test ecx, ecx
je 0x52e400
dec ecx
mov dword [eax + 0x74], ecx
jne 0x52e423
lea edx, [eax + 0x78]
mov eax, dword [eax + 0x10]
push edx
push 0x924470
push 1
push 0x139
push str..mupdf_source_fitzdevice.c
push eax
call fcn.004b35a0
test byte [eax], 8
je 0x52e416
mov ecx, dword [eax + 0x178]
test ecx, ecx
jle 0x52e416
dec ecx
mov dword [eax + 0x178], ecx
mov ecx, dword [eax + 0x54]
test ecx, ecx
je 0x52e423
push eax
call ecx
add esp, 4
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x52e4f1
lea ecx, [esp + 0xd4]
push ecx
push ebp
lea ecx, [esp + 0x3c]
call fcn.0052ad80
mov eax, dword [esp + 0x74]
add esp, 8
test eax, eax
je 0x52e463
push eax
call fcn.004eef20
fmul dword [esp + 0xd8]
add esp, 4
fstp dword [esp + 0xd4]
mov edx, dword [esp + 0x34]
xor eax, eax
mov dword [ebp + 0x188], edx
cmp dword [edx + 0x1c], eax
jle 0x52e492
lea ecx, [ebp + 0x18c]
lea ebx, [ebx]
fld dword [esp + eax*4 + 0xd8]
inc eax
fstp dword [ecx]
add ecx, 4
cmp eax, dword [edx + 0x1c]
jl 0x52e480
mov edx, dword [ebp + 0x184]
fld dword [ebp + edx*4 + 0x84]
mov eax, dword [ebp + 0x1b4]
fmul dword [esp + 0xd4]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fst dword [ebp + 0x1ac]
cmp dword [eax + 0x74], 0
jne 0x52e4ef
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x52e4ef
push ecx
fstp dword [esp]
lea edx, [ebp + 0x18c]
push edx
mov edx, dword [ebp + 0x188]
push edx
lea edx, [esp + 0xc8]
push edx
mov edx, dword [esp + 0x28]
push edx
push esi
push eax
call ecx
add esp, 0x1c
jmp 0x52e4f1
fstp st(0)
mov edi, dword [esp + 0x30]
test edi, edi
je 0x52e596
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xbc]
push eax
mov eax, dword [ebp + 0x1b4]
push ecx
lea edx, [esp + 0xb4]
push edx
push esi
push eax
call fcn.004d0a50
mov ecx, dword [esp + 0x74]
add esp, 0x14
push edi
push ebx
push ecx
lea edx, [esp + 0xb8]
push edx
lea eax, [esp + 0xcc]
push eax
push ebp
call fcn.0052a6e0
mov eax, dword [ebp + 0x1b4]
mov ecx, dword [eax + 0x74]
add esp, 0x18
test ecx, ecx
je 0x52e573
dec ecx
mov dword [eax + 0x74], ecx
jne 0x52e596
mov edx, dword [eax + 0x10]
lea ecx, [eax + 0x78]
push ecx
push 0x924470
push 1
push 0x139
push str..mupdf_source_fitzdevice.c
push edx
call fcn.004b35a0
test byte [eax], 8
je 0x52e589
mov ecx, dword [eax + 0x178]
test ecx, ecx
jle 0x52e589
dec ecx
mov dword [eax + 0x178], ecx
mov ecx, dword [eax + 0x54]
test ecx, ecx
je 0x52e596
push eax
call ecx
add esp, 4
cmp dword [esp + 0x68], 0
mov ecx, dword [esp + 0x44]
jne 0x52e5a9
test ecx, ecx
je 0x52e634
mov eax, dword [ebp + 0x184]
test eax, eax
jle 0x52e5ba
dec eax
mov dword [ebp + 0x184], eax
test ecx, ecx
je 0x52e634
movsx eax, byte [ecx]
neg eax
sbb eax, eax
and eax, ecx
mov ecx, str.SolidColorBrush
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52e5f0
test dl, dl
je 0x52e5ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52e5f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x52e5d0
xor eax, eax
jmp 0x52e5f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x52e634
mov eax, dword [ebp + 0x1b4]
mov ecx, dword [eax + 0x74]
test ecx, ecx
je 0x52e611
dec ecx
mov dword [eax + 0x74], ecx
jne 0x52e634
jmp 0x52e555
test byte [eax], 8
je 0x52e627
mov ecx, dword [eax + 0x178]
test ecx, ecx
jle 0x52e627
dec ecx
mov dword [eax + 0x178], ecx
mov ecx, dword [eax + 0x54]
test ecx, ecx
je 0x52e634
push eax
call ecx
add esp, 4
mov ebx, dword [esp + 0x24]
cmp esi, ebx
je 0x52e646
mov eax, dword [ebp + 0x48]
mov edi, esi
call fcn.004bf1e0
mov eax, dword [ebp + 0x48]
mov edi, ebx
call fcn.004bf1e0
mov ebx, dword [esp + 0x18]
mov esi, dword [ebp + 0x48]
test ebx, ebx
je 0x52e6bb
mov eax, dword [esi + 4]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push 0
push ecx
call edx
mov eax, dword [ebx]
add esp, 8
test eax, eax
jle 0x52e67d
xor ecx, ecx
dec eax
sete cl
mov dword [ebx], eax
mov edi, ecx
jmp 0x52e67f
xor edi, edi
mov eax, dword [esi + 4]
mov edx, dword [eax]
mov eax, dword [eax + 8]
push 0
push edx
call eax
add esp, 8
test edi, edi
je 0x52e6bb
mov eax, dword [esi + 4]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push 0
push ecx
call edx
mov eax, dword [esi]
mov ecx, dword [eax]
mov edx, dword [eax + 0xc]
push ebx
push ecx
call edx
mov esi, dword [esi + 4]
mov eax, dword [esi]
mov ecx, dword [esi + 8]
push 0
push eax
call ecx
add esp, 0x18
cmp dword [esp + 0x48], 0
jne 0x52e6c9
cmp dword [esp + 0x40], 0
je 0x52e704
mov eax, dword [ebp + 0x1b4]
mov ecx, dword [eax + 0x74]
test ecx, ecx
je 0x52e6e1
dec ecx
mov dword [eax + 0x74], ecx
jne 0x52e704
jmp 0x52e3e2
test byte [eax], 8
je 0x52e6f7
mov ecx, dword [eax + 0x178]
test ecx, ecx
jle 0x52e6f7
dec ecx
mov dword [eax + 0x178], ecx
mov ecx, dword [eax + 0x54]
test ecx, ecx
je 0x52e704
push eax
call ecx
add esp, 4
mov ecx, dword [esp + 0xf4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0065865c
add esp, 0xe8
ret