Function at 0x411cbd
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x38
cmp dword [esp + 0x44], 0
push esi
mov esi, ecx
jne reloc.gdi32.dll_SetWorldTransform
xor eax, eax
pop esi
add esp, 0x38
ret 0x18
mov eax, dword [esp + 0x40]
test eax, eax
jne reloc.gdi32.dll_SetWorldTransform
or eax, reloc.gdi32.dll_SetWorldTransform
pop esi
add esp, 0x38
ret 0x18
mov ecx, dword [esp + 0x44]
test ecx, ecx
je reloc.gdi32.dll_SetWorldTransform
mov edx, dword [esp + 0x4c]
test edx, edx
je reloc.gdi32.dll_SetWorldTransform
mov dword [esi + 0x414], eax
dec eax
mov dword [esi + 0x420], eax
mov dword [esi + 0x410], ecx
mov eax, reloc.gdi32.dll_SetWorldTransform
xor ecx, ecx
push edi
movzx edi, byte [ecx + section..idata]
rol eax, 1
xor eax, edi
movzx edi, byte [ecx + reloc.gdi32.dll_SetWorldTransform]
rol eax, 1
xor eax, edi
movzx edi, byte [ecx + reloc.gdi32.dll_SetWorldTransform]
rol eax, 1
xor eax, edi
movzx edi, byte [ecx + reloc.gdi32.dll_SetWorldTransform]
rol eax, 1
add ecx, 4
xor eax, edi
cmp ecx, reloc.gdi32.dll_CancelDC
jb reloc.gdi32.dll_SetWorldTransform
test eax, eax
jne reloc.gdi32.dll_SetWorldTransform
push ebx
mov dword [esi], edx
lea ecx, [esi + 4]
add edx, reloc.gdi32.dll_SetWorldTransform
mov edi, reloc.gdi32.dll_CancelDC
lea ebx, [eax + 1]
push ebp
mov dword [ecx], edx
xor eax, eax
add eax, 0
mov ebp, dword [ecx]
mov dword [ebp + eax], 0
add eax, 4
cmp eax, reloc.gdi32.dll_SetWorldTransform
jb reloc.gdi32.dll_SetWorldTransform
add edx, reloc.gdi32.dll_SetWorldTransform
add ecx, 4
sub edi, ebx
jne reloc.gdi32.dll_SetWorldTransform
mov ecx, dword [esi + 0x414]
mov edx, dword [esi]
or eax, reloc.gdi32.dll_SetWorldTransform
mov dword [esi + 0x424], eax
mov dword [esi + 0x408], ecx
mov dword [esi + 0x404], ebx
mov dword [esi + 0x40c], edi
mov dword [edx], edi
mov ecx, dword [esi + 0x414]
mov edx, dword [esi + 0x410]
mov dword [esi + 0x428], edi
mov cl, byte [ecx]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x54]
mov byte [edx], cl
add dword [esi + 0x414], ebx
add dword [esi + 0x410], ebx
dec eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edi
mov dword [esi + 0x41c], ebx
mov dword [esp + 0x58], ebx
cmp eax, ebx
jbe reloc.gdi32.dll_SetWorldTransform
lea ebx, [ebx]
mov eax, dword [esp + 0x5c]
test eax, eax
je reloc.gdi32.dll_SetWorldTransform
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x18], ecx
test cl, cl
jne reloc.gdi32.dll_SetWorldTransform
mov edx, dword [esp + 0x60]
mov ecx, dword [esi + 0x410]
sub ecx, dword [esp + 0x50]
push edx
mov edx, dword [esi + 0x414]
sub edx, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
push ecx
call eax
add esp, 0x10
test eax, eax
je reloc.gdi32.dll_SetWorldTransform
cmp ebx, dword [esp + 0x1c]
jne reloc.gdi32.dll_SetWorldTransform
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], edx
jmp reloc.gdi32.dll_SetWorldTransform
mov eax, dword [esp + 0x54]
mov ecx, dword [esi + 0x414]
sub eax, ebx
push eax
push ebx
push ecx
lea edx, [esp + 0x34]
push edx
mov ecx, esi
call fcn.004119f6
mov ebp, dword [esp + 0x2c]
cmp ebp, 2
jl reloc.gdi32.dll_SetWorldTransform
mov eax, dword [esi + 0x424]
mov dword [esp + 0x14], 0
cmp dword [esp + 0x28], eax
jne reloc.gdi32.dll_SetWorldTransform
cmp edi, 1
jbe reloc.gdi32.dll_SetWorldTransform
cmp dword [esp + 0x38], eax
je reloc.gdi32.dll_SetWorldTransform
mov eax, dword [esp + 0x10]
push edi
sub ebx, edi
push ebx
push eax
mov ecx, esi
call fcn.00411399
mov ecx, dword [esp + 0x38]
push edi
push ecx
mov ecx, esi
mov ebx, eax
call fcn.0041167a
cmp eax, ebx
jge reloc.gdi32.dll_SetWorldTransform
mov eax, dword [esp + 0x38]
cmp eax, reloc.gdi32.dll_SetWorldTransform
jl reloc.gdi32.dll_SetWorldTransform
cmp edi, 2
je reloc.gdi32.dll_SetWorldTransform
cmp eax, reloc.gdi32.dll_SetWorldTransform
jl reloc.gdi32.dll_SetWorldTransform
cmp edi, 3
je reloc.gdi32.dll_SetWorldTransform
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov edx, dword [esi + 0x414]
sub eax, ebx
mov dword [esp + 0x20], eax
dec eax
push eax
lea ecx, [ebx + 1]
push ecx
inc edx
push edx
lea eax, [esp + 0x4c]
push eax
mov ecx, esi
call fcn.004119f6
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x40], ecx
lea eax, [ebx + 1]
mov dword [esp + 0x1c], eax
push ebp
jl reloc.gdi32.dll_SetWorldTransform
mov edx, ecx
push edx
mov ecx, esi
call fcn.0041167a
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x44]
push eax
push ecx
mov ecx, esi
call fcn.0041167a
mov ecx, dword [esp + 0x24]
sub ecx, eax
add ecx, ecx
mov eax, reloc.gdi32.dll_SetWorldTransform
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp reloc.gdi32.dll_SetWorldTransform
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, esi
call fcn.0041167a
mov edx, dword [esp + 0x44]
mov ebx, eax
mov eax, dword [esp + 0x40]
push edx
push eax
mov ecx, esi
call fcn.0041167a
sub ebx, eax
mov eax, ebx
mov ebx, dword [esp + 0x58]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, dword [esp + 0x44]
cmp ebp, eax
jge reloc.gdi32.dll_SetWorldTransform
mov dword [esp + 0x14], 1
test edi, edi
jbe reloc.gdi32.dll_SetWorldTransform
cmp dword [esp + 0x44], ebp
jl reloc.gdi32.dll_SetWorldTransform
mov ecx, dword [esp + 0x28]
push ebp
push ecx
mov ecx, esi
call fcn.0041167a
mov edx, dword [esp + 0x44]
mov ebx, eax
mov eax, dword [esp + 0x40]
push edx
push eax
mov ecx, esi
call fcn.0041167a
cmp eax, ebx
mov ebx, dword [esp + 0x58]
jge reloc.gdi32.dll_SetWorldTransform
mov dword [esp + 0x14], 1
test edi, edi
jne reloc.gdi32.dll_SetWorldTransform
cmp dword [esp + 0x44], ebp
jge reloc.gdi32.dll_SetWorldTransform
mov ecx, dword [esi + 0x414]
push 1
push ebx
push ecx
mov ecx, esi
call fcn.00411399
mov edx, dword [esp + 0x44]
mov ebx, eax
mov eax, dword [esp + 0x40]
push edx
push eax
mov ecx, esi
call fcn.0041167a
mov ecx, dword [esp + 0x28]
push ebp
push ecx
mov ecx, esi
lea ebx, [eax + ebx + 1]
call fcn.0041167a
cmp ebx, eax
mov ebx, dword [esp + 0x58]
jle reloc.gdi32.dll_SetWorldTransform
mov dword [esp + 0x14], 0
jmp reloc.gdi32.dll_SetWorldTransform
cmp dword [esp + 0x14], 0
jne reloc.gdi32.dll_SetWorldTransform
cmp ebp, 2
jle reloc.gdi32.dll_SetWorldTransform
mov edx, dword [esp + 0x20]
mov eax, dword [esi + 0x414]
add edx, reloc.gdi32.dll_SetWorldTransform
push edx
add ebx, 2
push ebx
add eax, 2
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, esi
call fcn.004119f6
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
push edx
mov ecx, esi
push eax
jl reloc.gdi32.dll_SetWorldTransform
call fcn.0041167a
mov ebx, eax
mov eax, dword [esp + 0x28]
push ebp
push eax
mov ecx, esi
call fcn.0041167a
sub eax, ebx
cdq
and edx, 3
add eax, edx
mov ecx, eax
sar ecx, 2
jmp reloc.gdi32.dll_SetWorldTransform
call fcn.0041167a
mov ebx, eax
mov eax, dword [esp + 0x28]
push ebp
push eax
mov ecx, esi
call fcn.0041167a
mov ecx, eax
sub ecx, ebx
add ecx, ecx
mov eax, reloc.gdi32.dll_SetWorldTransform
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, dword [esp + 0x34]
add ecx, eax
cmp ebp, ecx
jge reloc.gdi32.dll_SetWorldTransform
mov dword [esp + 0x14], 1
test edi, edi
jbe reloc.gdi32.dll_SetWorldTransform
cmp eax, ebp
jl reloc.gdi32.dll_SetWorldTransform
mov edx, dword [esp + 0x30]
push eax
push edx
mov ecx, esi
call fcn.0041167a
mov ebx, eax
mov eax, dword [esp + 0x28]
push ebp
push eax
mov ecx, esi
call fcn.0041167a
cmp ebx, eax
jl reloc.gdi32.dll_SetWorldTransform
cmp dword [esp + 0x14], 0
jne reloc.gdi32.dll_SetWorldTransform
cmp ebp, 3
jle reloc.gdi32.dll_SetWorldTransform
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x58]
mov eax, dword [esi + 0x414]
add ecx, reloc.gdi32.dll_SetWorldTransform
push ecx
add edx, 3
push edx
add eax, 3
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, esi
call fcn.004119f6
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x28]
cmp eax, ebx
push edx
mov ecx, esi
push eax
jl reloc.gdi32.dll_SetWorldTransform
call fcn.0041167a
push ebp
push ebx
mov ecx, esi
mov dword [esp + 0x2c], eax
call fcn.0041167a
mov ecx, dword [esp + 0x24]
sub eax, ecx
cdq
and edx, 3
add eax, edx
mov ecx, eax
sar ecx, 2
jmp reloc.gdi32.dll_SetWorldTransform
call fcn.0041167a
push ebp
push ebx
mov ecx, esi
mov dword [esp + 0x2c], eax
call fcn.0041167a
mov ecx, eax
mov eax, dword [esp + 0x24]
sub ecx, eax
add ecx, ecx
mov eax, reloc.gdi32.dll_SetWorldTransform
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, dword [esp + 0x34]
add ecx, eax
cmp ebp, ecx
jge reloc.gdi32.dll_SetWorldTransform
mov dword [esp + 0x14], 1
test edi, edi
jbe reloc.gdi32.dll_SetWorldTransform
cmp eax, ebp
jl reloc.gdi32.dll_SetWorldTransform
mov edx, dword [esp + 0x30]
push eax
push edx
mov ecx, esi
call fcn.0041167a
mov ebx, eax
mov eax, dword [esp + 0x28]
push ebp
push eax
mov ecx, esi
call fcn.0041167a
cmp ebx, eax
jl reloc.gdi32.dll_SetWorldTransform
cmp dword [esp + 0x14], 0
jne reloc.gdi32.dll_SetWorldTransform
mov ebx, dword [esp + 0x58]
test edi, edi
je reloc.gdi32.dll_SetWorldTransform
cmp edi, 1
jbe reloc.gdi32.dll_SetWorldTransform
mov edx, dword [esp + 0x54]
mov ecx, edi
sub ecx, ebx
lea eax, [edx + ecx]
cmp eax, edi
jbe reloc.gdi32.dll_SetWorldTransform
mov eax, edi
push eax
mov eax, dword [esp + 0x14]
sub ebx, edi
push ebx
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, esi
mov dword [esp + 0x24], ebx
call fcn.004119f6
cmp dword [esp + 0x34], edi
jb reloc.gdi32.dll_SetWorldTransform
mov edx, dword [esp + 0x30]
push edi
push edx
mov ecx, esi
call fcn.0041167a
mov ebx, eax
mov eax, dword [esp + 0x38]
push edi
push eax
mov ecx, esi
call fcn.0041167a
cmp eax, ebx
mov ebx, dword [esp + 0x14]
jle reloc.gdi32.dll_SetWorldTransform
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x10]
push edi
push ebx
push eax
mov ecx, esi
call fcn.00411399
mov ecx, dword [esp + 0x38]
push edi
push ecx
mov ecx, esi
mov ebx, eax
call fcn.0041167a
cmp eax, ebx
jge reloc.gdi32.dll_SetWorldTransform
mov ebx, dword [esp + 0x28]
cmp ebx, dword [esi + 0x424]
jne reloc.gdi32.dll_SetWorldTransform
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edx
push eax
mov ecx, esi
call fcn.00411399
push ebp
push ebx
mov ecx, esi
mov dword [esp + 0x2c], eax
call fcn.0041167a
mov ecx, dword [esp + 0x24]
add ecx, eax
mov edx, ebx
push ebp
inc edx
mov dword [esp + 0x28], ecx
push edx
mov ecx, esi
call fcn.0041167a
mov ebx, eax
mov eax, dword [esp + 0x38]
push edi
push eax
mov ecx, esi
call fcn.0041167a
mov ebp, dword [esp + 0x2c]
add ebx, eax
mov eax, dword [esp + 0x24]
cmp eax, ebx
mov ebx, dword [esp + 0x58]
jle reloc.gdi32.dll_SetWorldTransform
jmp reloc.gdi32.dll_SetWorldTransform
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x38]
cmp eax, dword [esi + 0x424]
jne reloc.gdi32.dll_SetWorldTransform
cmp dword [esi + 0x428], 0
je reloc.gdi32.dll_SetWorldTransform
cmp eax, reloc.gdi32.dll_SetWorldTransform
jl reloc.gdi32.dll_SetWorldTransform
cmp edi, 2
je reloc.gdi32.dll_SetWorldTransform
cmp dword [esp + 0x38], 0x7d00
jl reloc.gdi32.dll_SetWorldTransform
cmp edi, 3
je reloc.gdi32.dll_SetWorldTransform
mov ecx, dword [esp + 0x38]
push edi
push ecx
mov ecx, esi
call fcn.004116fc
jmp reloc.gdi32.dll_SetWorldTransform
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x10]
mov edx, ebx
sub edx, edi
push edx
push eax
mov ecx, esi
call fcn.004113f2
inc dword [esp + 0x10]
sub edi, 1
jne reloc.gdi32.dll_SetWorldTransform
jmp reloc.gdi32.dll_SetWorldTransform
mov edx, dword [esp + 0x10]
lea ecx, [ebx - 1]
push ecx
push edx
mov ecx, esi
call fcn.004113f2
xor edi, edi
cmp ebp, 3
jg reloc.gdi32.dll_SetWorldTransform
mov eax, dword [esi + 0x414]
push ebp
push ebx
push eax
mov ecx, esi
call fcn.00411399
mov ecx, dword [esp + 0x28]
push ebp
push ecx
mov ecx, esi
mov ebx, eax
call fcn.0041167a
cmp eax, ebx
jg reloc.gdi32.dll_SetWorldTransform
mov eax, dword [esp + 0x28]
cmp eax, dword [esi + 0x424]
jne reloc.gdi32.dll_SetWorldTransform
cmp dword [esi + 0x428], 0
je reloc.gdi32.dll_SetWorldTransform
cmp eax, reloc.gdi32.dll_SetWorldTransform
jl reloc.gdi32.dll_SetWorldTransform
cmp ebp, 2
je reloc.gdi32.dll_SetWorldTransform
cmp eax, reloc.gdi32.dll_SetWorldTransform
jl reloc.gdi32.dll_SetWorldTransform
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x14], ebp
test ebp, ebp
je reloc.gdi32.dll_SetWorldTransform
mov edx, dword [esi + 0x414]
push ebx
push edx
mov ecx, esi
call fcn.004113f2
mov eax, 1
add dword [esi + 0x414], eax
sub dword [esp + 0x14], eax
jne reloc.gdi32.dll_SetWorldTransform
lea ebx, [ebp + ebx - 1]
jmp reloc.gdi32.dll_SetWorldTransform
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x28]
push ebp
push eax
mov ecx, esi
call fcn.004116fc
add dword [esi + 0x414], ebp
lea ebx, [ebp + ebx - 1]
jmp reloc.gdi32.dll_SetWorldTransform
mov ebx, dword [esp + 0x58]
test edi, edi
jne reloc.gdi32.dll_SetWorldTransform
mov ecx, dword [esp + 0x28]
mov edx, dword [esi + 0x414]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], ecx
mov dword [esp + 0x10], edx
inc edi
jmp reloc.gdi32.dll_SetWorldTransform
test edi, edi
je reloc.gdi32.dll_SetWorldTransform
inc edi
jmp reloc.gdi32.dll_SetWorldTransform
mov eax, dword [esi + 0x414]
push ebx
push eax
mov ecx, esi
call fcn.004113f2
inc dword [esi + 0x414]
test edi, edi
je reloc.gdi32.dll_SetWorldTransform
cmp edi, dword [esp + 0x3c]
jne reloc.gdi32.dll_SetWorldTransform
mov edx, dword [esp + 0x54]
mov ecx, edi
sub ecx, ebx
lea eax, [edx + ecx]
cmp eax, edi
jbe reloc.gdi32.dll_SetWorldTransform
mov eax, edi
push eax
mov eax, dword [esp + 0x14]
mov ebp, ebx
sub ebp, edi
push ebp
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, esi
mov dword [esp + 0x24], ebp
call fcn.004119f6
cmp dword [esp + 0x34], edi
jb reloc.gdi32.dll_SetWorldTransform
mov edx, dword [esp + 0x30]
push edi
push edx
mov ecx, esi
call fcn.0041167a
mov ebp, eax
mov eax, dword [esp + 0x38]
push edi
push eax
mov ecx, esi
call fcn.0041167a
cmp eax, ebp
mov ebp, dword [esp + 0x14]
jle reloc.gdi32.dll_SetWorldTransform
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x10]
push edi
push ebp
push eax
mov ecx, esi
call fcn.00411399
mov ecx, dword [esp + 0x38]
push edi
push ecx
mov ecx, esi
mov ebp, eax
call fcn.0041167a
cmp eax, ebp
jge reloc.gdi32.dll_SetWorldTransform
mov eax, dword [esp + 0x38]
cmp eax, dword [esi + 0x424]
jne reloc.gdi32.dll_SetWorldTransform
cmp dword [esi + 0x428], 0
je reloc.gdi32.dll_SetWorldTransform
cmp eax, reloc.gdi32.dll_SetWorldTransform
jl reloc.gdi32.dll_SetWorldTransform
cmp edi, 2
je reloc.gdi32.dll_SetWorldTransform
cmp eax, reloc.gdi32.dll_SetWorldTransform
jl reloc.gdi32.dll_SetWorldTransform
cmp edi, 3
je reloc.gdi32.dll_SetWorldTransform
push edi
push eax
mov ecx, esi
call fcn.004116fc
xor edi, edi
jmp reloc.gdi32.dll_SetWorldTransform
mov ebp, dword [esp + 0x10]
add eax, 0
mov edx, ebx
sub edx, edi
push edx
push ebp
mov ecx, esi
call fcn.004113f2
inc ebp
sub edi, 1
jne reloc.gdi32.dll_SetWorldTransform
mov dword [esp + 0x10], ebp
mov eax, dword [esp + 0x54]
inc ebx
dec eax
mov dword [esp + 0x58], ebx
cmp ebx, eax
jb reloc.gdi32.dll_SetWorldTransform
test edi, edi
je reloc.gdi32.dll_SetWorldTransform
cmp edi, 1
jbe reloc.gdi32.dll_SetWorldTransform
mov ecx, dword [esp + 0x10]
push edi
mov eax, ebx
sub eax, edi
push eax
push ecx
mov ecx, esi
call fcn.00411399
mov edx, dword [esp + 0x38]
push edi
push edx
mov ecx, esi
mov ebp, eax
call fcn.0041167a
cmp eax, ebp
jg reloc.gdi32.dll_SetWorldTransform
mov eax, dword [esp + 0x38]
cmp eax, dword [esi + 0x424]
jne reloc.gdi32.dll_SetWorldTransform
cmp dword [esi + 0x428], 0
je reloc.gdi32.dll_SetWorldTransform
cmp eax, reloc.gdi32.dll_SetWorldTransform
jl reloc.gdi32.dll_SetWorldTransform
cmp edi, 2
je reloc.gdi32.dll_SetWorldTransform
cmp eax, reloc.gdi32.dll_SetWorldTransform
jl reloc.gdi32.dll_SetWorldTransform
cmp edi, 3
je reloc.gdi32.dll_SetWorldTransform
push edi
push eax
mov ecx, esi
call fcn.004116fc
jmp reloc.gdi32.dll_SetWorldTransform
pop ebp
pop ebx
pop edi
or eax, reloc.gdi32.dll_SetWorldTransform
pop esi
add esp, 0x38
ret 0x18
mov ebp, dword [esp + 0x10]
mov eax, ebx
sub eax, edi
push eax
push ebp
mov ecx, esi
call fcn.004113f2
inc ebp
sub edi, 1
jne reloc.gdi32.dll_SetWorldTransform
jmp reloc.gdi32.dll_SetWorldTransform
mov edx, dword [esp + 0x10]
lea ecx, [ebx - 1]
push ecx
push edx
mov ecx, esi
call fcn.004113f2
mov edi, dword [esp + 0x54]
mov ebp, 1
cmp ebx, edi
jae reloc.gdi32.dll_SetWorldTransform
lea ebx, [ebx]
mov eax, dword [esi + 0x414]
push ebx
push eax
mov ecx, esi
call fcn.004113f2
add dword [esi + 0x414], ebp
add ebx, ebp
cmp ebx, edi
jb reloc.gdi32.dll_SetWorldTransform
or ebx, reloc.gdi32.dll_SetWorldTransform
add dword [esi + 0x41c], ebx
lea ecx, [ebx + 9]
jne reloc.gdi32.dll_SetWorldTransform
mov eax, dword [esi + 0x410]
mov dword [esi + 0x418], eax
inc eax
mov dword [esi + 0x41c], ecx
mov dword [esi + 0x410], eax
mov eax, dword [esi + 0x418]
mov dl, byte [eax]
add dl, dl
inc dl
mov byte [eax], dl
add dword [esi + 0x41c], ebx
jne reloc.gdi32.dll_SetWorldTransform
mov eax, dword [esi + 0x410]
mov dword [esi + 0x418], eax
inc eax
mov dword [esi + 0x41c], ecx
mov dword [esi + 0x410], eax
mov eax, dword [esi + 0x418]
mov dl, byte [eax]
add dl, dl
inc dl
mov byte [eax], dl
add dword [esi + 0x41c], ebx
jne reloc.gdi32.dll_SetWorldTransform
mov eax, dword [esi + 0x410]
mov dword [esi + 0x418], eax
inc eax
mov dword [esi + 0x41c], ecx
mov dword [esi + 0x410], eax
mov eax, dword [esi + 0x418]
shl byte [eax], 1
mov eax, dword [esi + 0x410]
mov byte [eax], 0
mov ecx, dword [esi + 0x41c]
mov eax, dword [esi + 0x418]
add dword [esi + 0x410], ebp
sub ecx, ebp
shl byte [eax], cl
mov eax, dword [esp + 0x5c]
test eax, eax
je reloc.gdi32.dll_SetWorldTransform
mov ecx, dword [esp + 0x60]
mov edx, dword [esi + 0x410]
sub edx, dword [esp + 0x50]
push ecx
mov ecx, dword [esi + 0x414]
sub ecx, dword [esp + 0x50]
push edx
push ecx
push edi
call eax
add esp, 0x10
test eax, eax
jne reloc.gdi32.dll_SetWorldTransform
pop ebp
mov eax, ebx
pop ebx
pop edi
pop esi
add esp, 0x38
ret 0x18
mov eax, dword [esi + 0x410]
sub eax, dword [esp + 0x50]
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x38
ret 0x18