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

Disassembly:
push 0xffffffffffffffff
push 0x5e34af
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x174
push ebx
push ebp
push esi
mov esi, ecx
push edi
xor ebp, ebp
push 0x20
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], esi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x18], ebp
call fcn.0041b410
push 0x20
lea ecx, [esp + 0x24]
mov dword [esp + 0x190], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], ebp
call fcn.0041b410
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x98]
mov dword [esp + 0x1c], ebp
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x14]
push str.layer_id
lea ecx, [esp + 0x18]
mov byte [esp + 0x190], 1
mov byte [eax], 0
call fcn.0041b5c0
mov ebx, dword [esp + 0x194]
mov edi, dword [esp + 0x198]
mov ecx, dword [ebx + 0x20]
cmp ecx, ebp
je 0x54d4a6
lea edx, [esp + 0x14]
push edx
call fcn.0041b8d0
cmp eax, ebp
je 0x54d4a6
mov ecx, dword [ebx + 0x20]
cmp ecx, ebp
jne 0x54d332
push str.SXmlElem::PickupAttr_error:_No_attribute.
lea ecx, [esp + 0xbc]
call fcn.0040bed0
lea eax, [esp + 0xb8]
push 0x5ff2d8
push eax
call fcn.005300db
lea edx, [esp + 0x14]
push edx
call fcn.0041b960
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ebp
push eax
mov byte [ecx], 0
lea ecx, [esp + 0x24]
call fcn.0041b4c0
mov esi, dword [esp + 0x20]
xor edx, edx
mov dl, byte [esi]
mov al, byte [edx + 0x638374]
and eax, 0x40
mov dword [esp + 0x34], eax
je 0x54d36b
inc esi
jmp 0x54d355
movsx eax, byte [esi]
sub eax, 0x2b
je 0x54d383
sub eax, 2
jne 0x54d384
mov dword [esp + 0x34], 1
inc esi
jmp 0x54d388
inc esi
mov dword [esp + 0x34], ebp
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x30
jne case.0x54d3a6.68
movsx ecx, byte [esi + 1]
inc esi
add ecx, 0xffffffbe
cmp ecx, 0x36
ja case.0x54d3a6.68
xor edx, edx
mov dl, byte [ecx + 0x54e478]
jmp dword [edx*4 + 0x54e46c]
mov edi, 0x10
jmp 0x54d3b9
mov edi, 2
inc esi
mov cl, byte [esi]
inc esi
mov byte [esp + 0x10], cl
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dl, byte [edx + 0x638374]
mov bl, dl
and ebx, 2
mov dword [esp + 0x30], ebx
je 0x54d3fa
mov ebx, edi
imul eax, ebx
test dl, 1
je 0x54d3f0
movsx ecx, cl
sub ecx, 0x30
add eax, ecx
jmp 0x54d3ba
and ecx, 7
add ecx, 9
add eax, ecx
jmp 0x54d3ba
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x54d404
neg eax
xor edi, edi
jmp 0x54d475
xor ecx, ecx
mov dl, byte [esi]
inc esi
mov byte [esp + 0x10], dl
mov edi, dword [esp + 0x10]
mov edx, edi
and edx, 0xff
mov dl, byte [edx + 0x638374]
mov bl, dl
and ebx, 2
mov dword [esp + 0x30], ebx
je 0x54d459
lea eax, [eax + eax*4]
shl eax, 1
shl ecx, 4
test dl, 1
je 0x54d44a
movsx edx, byte [esp + 0x10]
lea eax, [eax + edx - 0x30]
lea ecx, [ecx + edx - 0x30]
jmp 0x54d40a
mov edx, edi
and edx, 7
lea eax, [eax + edx + 9]
lea ecx, [ecx + edx + 9]
jmp 0x54d40a
mov dl, byte [esp + 0x10]
cmp dl, 0x68
je 0x54d467
cmp dl, 0x48
jne 0x54d469
mov eax, ecx
mov ecx, dword [esp + 0x34]
xor edi, edi
cmp ecx, edi
je 0x54d475
neg eax
mov esi, dword [esp + 0x19c]
push eax
mov ecx, esi
mov edx, dword [esi]
call dword [edx + 0x40]
mov ecx, esi
call fcn.00549f70
mov ecx, dword [esp + 0x2c]
push eax
call fcn.0054ade0
mov ecx, dword [eax]
mov ebx, dword [esi]
call fcn.0054a830
push eax
mov ecx, esi
call dword [ebx + 0x3c]
jmp 0x54d4de
mov ebx, dword [esp + 0x19c]
mov ecx, edi
mov ebp, dword [ebx]
call fcn.00549f70
push eax
mov ecx, ebx
call dword [ebp + 0x40]
mov ecx, edi
call fcn.00549f70
push eax
mov ecx, esi
call fcn.0054ade0
mov ecx, dword [eax]
mov esi, dword [ebx]
call fcn.0054a830
push eax
mov ecx, ebx
call dword [esi + 0x3c]
xor edi, edi
mov esi, ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], edi
push str.process
lea ecx, [esp + 0x18]
mov byte [eax], 0
call fcn.0041b5c0
mov ebx, dword [esp + 0x194]
mov ecx, dword [ebx + 0x20]
cmp ecx, edi
je 0x54d592
lea edx, [esp + 0x14]
push edx
call fcn.0041b8d0
cmp eax, edi
je 0x54d592
mov ecx, dword [ebx + 0x20]
cmp ecx, edi
jne 0x54d541
push str.SXmlElem::PickupAttr_error:_No_attribute.
lea ecx, [esp + 0xbc]
call fcn.0040bed0
lea eax, [esp + 0xb8]
push 0x5ff2d8
push eax
call fcn.005300db
lea edx, [esp + 0x14]
push edx
call fcn.0041b960
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], edi
push eax
mov byte [ecx], 0
lea ecx, [esp + 0x24]
call fcn.0041b4c0
mov edx, dword [esp + 0x20]
mov al, byte [edx]
cmp al, 0x74
je 0x54d58b
cmp al, 0x54
je 0x54d58b
cmp al, 0x66
je 0x54d587
cmp al, 0x46
je 0x54d587
lea ecx, [esp + 0x20]
call fcn.00428540
neg eax
sbb eax, eax
neg eax
jmp 0x54d59e
xor eax, eax
jmp 0x54d59e
mov eax, 1
jmp 0x54d59e
mov ecx, dword [esp + 0x198]
call fcn.00549fd0
push eax
mov ecx, esi
call fcn.00549fe0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], edi
push str.work_method
lea ecx, [esp + 0x18]
mov byte [eax], 0
call fcn.0041b5c0
mov ecx, dword [ebx + 0x20]
cmp ecx, edi
je 0x54d74c
lea edx, [esp + 0x14]
push edx
call fcn.0041b8d0
cmp eax, edi
je 0x54d74c
mov ecx, dword [ebx + 0x20]
cmp ecx, edi
jne 0x54d606
push str.SXmlElem::PickupAttr_error:_No_attribute.
lea ecx, [esp + 0xbc]
call fcn.0040bed0
lea eax, [esp + 0xb8]
push 0x5ff2d8
push eax
call fcn.005300db
lea edx, [esp + 0x14]
push edx
call fcn.0041b960
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], edi
push eax
mov byte [ecx], 0
lea ecx, [esp + 0x24]
call fcn.0041b4c0
mov esi, dword [esp + 0x20]
xor edx, edx
mov dl, byte [esi]
mov al, byte [edx + 0x638374]
and eax, 0x40
mov dword [esp + 0x30], eax
je 0x54d63f
inc esi
jmp 0x54d629
movsx eax, byte [esi]
sub eax, 0x2b
je 0x54d654
sub eax, 2
jne 0x54d655
mov ebp, 1
inc esi
jmp 0x54d657
inc esi
xor ebp, ebp
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x30
jne case.0x54d675.68
movsx ecx, byte [esi + 1]
inc esi
add ecx, 0xffffffbe
cmp ecx, 0x36
ja case.0x54d675.68
xor edx, edx
mov dl, byte [ecx + 0x54e4bc]
jmp dword [edx*4 + 0x54e4b0]
mov edi, 0x10
jmp 0x54d688
mov edi, 2
inc esi
mov cl, byte [esi]
inc esi
mov byte [esp + 0x10], cl
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dl, byte [edx + 0x638374]
mov bl, dl
and ebx, 2
mov dword [esp + 0x30], ebx
je 0x54d6c9
mov ebx, edi
imul eax, ebx
test dl, 1
je 0x54d6bf
movsx ecx, cl
sub ecx, 0x30
add eax, ecx
jmp 0x54d689
and ecx, 7
add ecx, 9
add eax, ecx
jmp 0x54d689
test ebp, ebp
je 0x54d736
jmp 0x54d734
xor ecx, ecx
mov dl, byte [esi]
inc esi
mov byte [esp + 0x10], dl
mov edi, dword [esp + 0x10]
mov edx, edi
and edx, 0xff
mov dl, byte [edx + 0x638374]
mov bl, dl
and ebx, 2
mov dword [esp + 0x30], ebx
je 0x54d720
lea eax, [eax + eax*4]
shl eax, 1
shl ecx, 4
test dl, 1
je 0x54d711
movsx edx, byte [esp + 0x10]
lea eax, [eax + edx - 0x30]
lea ecx, [ecx + edx - 0x30]
jmp 0x54d6d1
mov edx, edi
and edx, 7
lea eax, [eax + edx + 9]
lea ecx, [ecx + edx + 9]
jmp 0x54d6d1
mov dl, byte [esp + 0x10]
cmp dl, 0x68
je 0x54d72e
cmp dl, 0x48
jne 0x54d730
mov eax, ecx
test ebp, ebp
je 0x54d736
neg eax
mov ecx, dword [esp + 0x19c]
push eax
call fcn.005651e0
mov ebx, dword [esp + 0x194]
xor edi, edi
mov eax, dword [esp + 0x14]
mov ebp, 1
mov dword [esp + 0x44], 3
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0x408f4000
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0x408f4000
mov dword [esp + 0x58], 0xf4240
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x1c], edi
push str.line_type
lea ecx, [esp + 0x18]
mov byte [eax], 0
call fcn.0041b5c0
mov ecx, dword [ebx + 0x20]
cmp ecx, edi
je 0x54d920
lea edx, [esp + 0x14]
push edx
call fcn.0041b8d0
cmp eax, edi
je 0x54d920
mov ecx, dword [ebx + 0x20]
cmp ecx, edi
jne 0x54d7e5
push str.SXmlElem::PickupAttr_error:_No_attribute.
lea ecx, [esp + 0xbc]
call fcn.0040bed0
lea eax, [esp + 0xb8]
push 0x5ff2d8
push eax
call fcn.005300db
lea edx, [esp + 0x14]
push edx
call fcn.0041b960
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], edi
push eax
mov byte [ecx], 0
lea ecx, [esp + 0x24]
call fcn.0041b4c0
mov esi, dword [esp + 0x20]
xor edx, edx
mov dl, byte [esi]
mov al, byte [edx + 0x638374]
and eax, 0x40
mov dword [esp + 0x30], eax
je 0x54d81e
inc esi
jmp 0x54d808
movsx eax, byte [esi]
sub eax, 0x2b
je 0x54d82e
sub eax, 2
jne 0x54d82f
inc esi
jmp 0x54d831
inc esi
xor ebp, ebp
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x30
jne case.0x54d84f.68
movsx ecx, byte [esi + 1]
inc esi
add ecx, 0xffffffbe
cmp ecx, 0x36
ja case.0x54d84f.68
xor edx, edx
mov dl, byte [ecx + 0x54e500]
jmp dword [edx*4 + 0x54e4f4]
mov edi, 0x10
jmp 0x54d862
mov edi, 2
inc esi
mov cl, byte [esi]
inc esi
mov byte [esp + 0x10], cl
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dl, byte [edx + 0x638374]
mov bl, dl
and ebx, 2
mov dword [esp + 0x30], ebx
je 0x54d8a3
mov ebx, edi
imul eax, ebx
test dl, 1
je 0x54d899
movsx ecx, cl
sub ecx, 0x30
add eax, ecx
jmp 0x54d863
and ecx, 7
add ecx, 9
add eax, ecx
jmp 0x54d863
test ebp, ebp
je 0x54d8a9
neg eax
xor ebx, ebx
mov dword [esp + 0x44], eax
jmp 0x54d926
xor ecx, ecx
mov dl, byte [esi]
inc esi
mov byte [esp + 0x10], dl
mov edi, dword [esp + 0x10]
mov edx, edi
and edx, 0xff
mov dl, byte [edx + 0x638374]
mov bl, dl
and ebx, 2
mov dword [esp + 0x30], ebx
je 0x54d902
lea eax, [eax + eax*4]
shl eax, 1
shl ecx, 4
test dl, 1
je 0x54d8f3
movsx edx, byte [esp + 0x10]
lea eax, [eax + edx - 0x30]
lea ecx, [ecx + edx - 0x30]
jmp 0x54d8b3
mov edx, edi
and edx, 7
lea eax, [eax + edx + 9]
lea ecx, [ecx + edx + 9]
jmp 0x54d8b3
mov dl, byte [esp + 0x10]
cmp dl, 0x68
je 0x54d910
cmp dl, 0x48
jne 0x54d912
mov eax, ecx
xor ebx, ebx
cmp ebp, ebx
je 0x54d91a
neg eax
mov dword [esp + 0x44], eax
jmp 0x54d926
mov dword [esp + 0x44], edi
xor ebx, ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], ebx
push str.blank_length
lea ecx, [esp + 0x18]
mov byte [eax], 0
call fcn.0041b5c0
mov ebp, dword [esp + 0x194]
mov ecx, dword [ebp + 0x20]
cmp ecx, ebx
je 0x54dad2
lea edx, [esp + 0x14]
push edx
call fcn.0041b8d0
cmp eax, ebx
je 0x54dad2
mov ecx, dword [ebp + 0x20]
cmp ecx, ebx
jne 0x54d98d
push str.SXmlElem::PickupAttr_error:_No_attribute.
lea ecx, [esp + 0xbc]
call fcn.0040bed0
lea eax, [esp + 0xb8]
push 0x5ff2d8
push eax
call fcn.005300db
lea edx, [esp + 0x14]
push edx
call fcn.0041b960
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ebx
push eax
mov byte [ecx], 0
lea ecx, [esp + 0x24]
call fcn.0041b4c0
mov esi, dword [esp + 0x20]
xor edx, edx
mov dl, byte [esi]
mov al, byte [edx + 0x638374]
and eax, 0x40
mov dword [esp + 0x30], eax
je 0x54d9c6
inc esi
jmp 0x54d9b0
movsx eax, byte [esi]
sub eax, 0x2b
je 0x54d9db
sub eax, 2
jne 0x54d9dc
mov ebp, 1
inc esi
jmp 0x54d9de
inc esi
xor ebp, ebp
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x30
jne case.0x54d9fc.68
movsx ecx, byte [esi + 1]
inc esi
add ecx, 0xffffffbe
cmp ecx, 0x36
ja case.0x54d9fc.68
xor edx, edx
mov dl, byte [ecx + 0x54e544]
jmp dword [edx*4 + 0x54e538]
mov edi, 0x10
jmp 0x54da0f
mov edi, 2
inc esi
mov cl, byte [esi]
inc esi
mov byte [esp + 0x10], cl
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dl, byte [edx + 0x638374]
mov bl, dl
and ebx, 2
mov dword [esp + 0x30], ebx
je 0x54da50
mov ebx, edi
imul eax, ebx
test dl, 1
je 0x54da46
movsx ecx, cl
sub ecx, 0x30
add eax, ecx
jmp 0x54da10
and ecx, 7
add ecx, 9
add eax, ecx
jmp 0x54da10
test ebp, ebp
je 0x54dabd
jmp 0x54dabb
xor ecx, ecx
mov dl, byte [esi]
inc esi
mov byte [esp + 0x10], dl
mov edi, dword [esp + 0x10]
mov edx, edi
and edx, 0xff
mov dl, byte [edx + 0x638374]
mov bl, dl
and ebx, 2
mov dword [esp + 0x30], ebx
je 0x54daa7
lea eax, [eax + eax*4]
shl eax, 1
shl ecx, 4
test dl, 1
je 0x54da98
movsx edx, byte [esp + 0x10]
lea eax, [eax + edx - 0x30]
lea ecx, [ecx + edx - 0x30]
jmp 0x54da58
mov edx, edi
and edx, 7
lea eax, [eax + edx + 9]
lea ecx, [ecx + edx + 9]
jmp 0x54da58
mov dl, byte [esp + 0x10]
cmp dl, 0x68
je 0x54dab5
cmp dl, 0x48
jne 0x54dab7
mov eax, ecx
test ebp, ebp
je 0x54dabd
neg eax
mov ebp, dword [esp + 0x194]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
xor ebx, ebx
fstp qword [esp + 0x48]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], ebx
push str.segment_length
lea ecx, [esp + 0x18]
mov byte [eax], 0
call fcn.0041b5c0
mov ecx, dword [ebp + 0x20]
cmp ecx, ebx
je 0x54dc77
lea edx, [esp + 0x14]
push edx
call fcn.0041b8d0
cmp eax, ebx
je 0x54dc77
mov ecx, dword [ebp + 0x20]
cmp ecx, ebx
jne 0x54db32
push str.SXmlElem::PickupAttr_error:_No_attribute.
lea ecx, [esp + 0xbc]
call fcn.0040bed0
lea eax, [esp + 0xb8]
push 0x5ff2d8
push eax
call fcn.005300db
lea edx, [esp + 0x14]
push edx
call fcn.0041b960
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ebx
push eax
mov byte [ecx], 0
lea ecx, [esp + 0x24]
call fcn.0041b4c0
mov esi, dword [esp + 0x20]
xor edx, edx
mov dl, byte [esi]
mov al, byte [edx + 0x638374]
and eax, 0x40
mov dword [esp + 0x30], eax
je 0x54db6b
inc esi
jmp 0x54db55
movsx eax, byte [esi]
sub eax, 0x2b
je 0x54db80
sub eax, 2
jne 0x54db81
mov ebp, 1
inc esi
jmp 0x54db83
inc esi
xor ebp, ebp
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x30
jne case.0x54dba1.68
movsx ecx, byte [esi + 1]
inc esi
add ecx, 0xffffffbe
cmp ecx, 0x36
ja case.0x54dba1.68
xor edx, edx
mov dl, byte [ecx + 0x54e588]
jmp dword [edx*4 + 0x54e57c]
mov edi, 0x10
jmp 0x54dbb4
mov edi, 2
inc esi
mov cl, byte [esi]
inc esi
mov byte [esp + 0x10], cl
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dl, byte [edx + 0x638374]
mov bl, dl
and ebx, 2
mov dword [esp + 0x30], ebx
je 0x54dbf5
mov ebx, edi
imul eax, ebx
test dl, 1
je 0x54dbeb
movsx ecx, cl
sub ecx, 0x30
add eax, ecx
jmp 0x54dbb5
and ecx, 7
add ecx, 9
add eax, ecx
jmp 0x54dbb5
test ebp, ebp
je 0x54dc62
jmp 0x54dc60
xor ecx, ecx
mov dl, byte [esi]
inc esi
mov byte [esp + 0x10], dl
mov edi, dword [esp + 0x10]
mov edx, edi
and edx, 0xff
mov dl, byte [edx + 0x638374]
mov bl, dl
and ebx, 2
mov dword [esp + 0x30], ebx
je 0x54dc4c
lea eax, [eax + eax*4]
shl eax, 1
shl ecx, 4
test dl, 1
je 0x54dc3d
movsx edx, byte [esp + 0x10]
lea eax, [eax + edx - 0x30]
lea ecx, [ecx + edx - 0x30]
jmp 0x54dbfd
mov edx, edi
and edx, 7
lea eax, [eax + edx + 9]
lea ecx, [ecx + edx + 9]
jmp 0x54dbfd
mov dl, byte [esp + 0x10]
cmp dl, 0x68
je 0x54dc5a
cmp dl, 0x48
jne 0x54dc5c
mov eax, ecx
test ebp, ebp
je 0x54dc62
neg eax
mov ebp, dword [esp + 0x194]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
xor ebx, ebx
fstp qword [esp + 0x50]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], ebx
push str.drill_time
lea ecx, [esp + 0x18]
mov byte [eax], 0
call fcn.0041b5c0
mov ecx, dword [ebp + 0x20]
cmp ecx, ebx
je 0x54de14
lea edx, [esp + 0x14]
push edx
call fcn.0041b8d0
cmp eax, ebx
je 0x54de14
mov ecx, dword [ebp + 0x20]
cmp ecx, ebx
jne 0x54dcd7
push str.SXmlElem::PickupAttr_error:_No_attribute.
lea ecx, [esp + 0xbc]
call fcn.0040bed0
lea eax, [esp + 0xb8]
push 0x5ff2d8
push eax
call fcn.005300db
lea edx, [esp + 0x14]
push edx
call fcn.0041b960
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ebx
push eax
mov byte [ecx], 0
lea ecx, [esp + 0x24]
call fcn.0041b4c0
mov esi, dword [esp + 0x20]
xor edx, edx
mov dl, byte [esi]
mov al, byte [edx + 0x638374]
and eax, 0x40
mov dword [esp + 0x30], eax
je 0x54dd10
inc esi
jmp 0x54dcfa
movsx eax, byte [esi]
sub eax, 0x2b
je 0x54dd25
sub eax, 2
jne 0x54dd26
mov ebp, 1
inc esi
jmp 0x54dd28
inc esi
xor ebp, ebp
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x30
jne case.0x54dd46.68
movsx ecx, byte [esi + 1]
inc esi
add ecx, 0xffffffbe
cmp ecx, 0x36
ja case.0x54dd46.68
xor edx, edx
mov dl, byte [ecx + 0x54e5cc]
jmp dword [edx*4 + 0x54e5c0]
mov edi, 0x10
jmp 0x54dd59
mov edi, 2
inc esi
mov cl, byte [esi]
inc esi
mov byte [esp + 0x10], cl
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dl, byte [edx + 0x638374]
mov bl, dl
and ebx, 2
mov dword [esp + 0x30], ebx
je 0x54dd9a
mov ebx, edi
imul eax, ebx
test dl, 1
je 0x54dd90
movsx ecx, cl
sub ecx, 0x30
add eax, ecx
jmp 0x54dd5a
and ecx, 7
add ecx, 9
add eax, ecx
jmp 0x54dd5a
test ebp, ebp
je 0x54de07
jmp 0x54de05
xor ecx, ecx
mov dl, byte [esi]
inc esi
mov byte [esp + 0x10], dl
mov edi, dword [esp + 0x10]
mov edx, edi
and edx, 0xff
mov dl, byte [edx + 0x638374]
mov bl, dl
and ebx, 2
mov dword [esp + 0x30], ebx
je 0x54ddf1
lea eax, [eax + eax*4]
shl eax, 1
shl ecx, 4
test dl, 1
je 0x54dde2
movsx edx, byte [esp + 0x10]
lea eax, [eax + edx - 0x30]
lea ecx, [ecx + edx - 0x30]
jmp 0x54dda2
mov edx, edi
and edx, 7
lea eax, [eax + edx + 9]
lea ecx, [ecx + edx + 9]
jmp 0x54dda2
mov dl, byte [esp + 0x10]
cmp dl, 0x68
je 0x54ddff
cmp dl, 0x48
jne 0x54de01
mov eax, ecx
test ebp, ebp
je 0x54de07
neg eax
mov ebp, dword [esp + 0x194]
mov dword [esp + 0x58], eax
xor ebx, ebx
mov edi, dword [esp + 0x19c]
lea eax, [esp + 0x44]
push eax
mov ecx, edi
call fcn.00565210
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], 1
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x1c], ebx
mov byte [ecx], 0
push str.overlap_length
lea ecx, [esp + 0x18]
call fcn.0041b5c0
mov ecx, dword [ebp + 0x20]
cmp ecx, ebx
je 0x54df29
lea edx, [esp + 0x14]
push edx
call fcn.0041b8d0
cmp eax, ebx
je 0x54df29
mov ecx, dword [ebp + 0x20]
cmp ecx, ebx
jne 0x54def5
push str.SXmlElem::PickupAttr_error:_No_attribute.
lea ecx, [esp + 0xbc]
call fcn.0040bed0
lea eax, [esp + 0xb8]
push 0x5ff2d8
push eax
call fcn.005300db
lea edx, [esp + 0x14]
push edx
call fcn.0041b960
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ebx
push eax
mov byte [ecx], 0
lea ecx, [esp + 0x24]
call fcn.0041b4c0
lea ecx, [esp + 0x20]
call fcn.00428540
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fstp qword [esp + 0x60]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], ebx
push str.head_lead_length
lea ecx, [esp + 0x18]
mov byte [edx], 0
call fcn.0041b5c0
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
call fcn.0041a3b0
test eax, eax
je 0x54df88
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebp
call fcn.0041a450
mov edx, dword [esp + 0x20]
mov dword [esp + 0x28], ebx
push eax
lea ecx, [esp + 0x24]
mov byte [edx], 0
call fcn.0041b4c0
lea ecx, [esp + 0x20]
call fcn.00428540
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fstp qword [esp + 0x68]
push str.tail_lead_length
lea ecx, [esp + 0x18]
call fcn.0041a280
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
call fcn.0041a3b0
test eax, eax
je 0x54dfd1
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebp
call fcn.0041a450
push eax
lea ecx, [esp + 0x24]
call fcn.0041a180
lea ecx, [esp + 0x20]
call fcn.00428540
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fstp qword [esp + 0x70]
push str.head_lead
lea ecx, [esp + 0x18]
call fcn.0041a280
lea edx, [esp + 0x14]
mov ecx, ebp
push edx
call fcn.0041a3b0
test eax, eax
je 0x54e012
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
call fcn.0041a450
push eax
lea ecx, [esp + 0x24]
call fcn.0041a180
lea ecx, [esp + 0x20]
call fcn.0043d930
mov dword [esp + 0x78], eax
push str.tail_lead
lea ecx, [esp + 0x18]
call fcn.0041a280
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebp
call fcn.0041a3b0
test eax, eax
je 0x54e053
lea edx, [esp + 0x14]
mov ecx, ebp
push edx
call fcn.0041a450
push eax
lea ecx, [esp + 0x24]
call fcn.0041a180
lea ecx, [esp + 0x20]
call fcn.0043d930
mov dword [esp + 0x7c], eax
push str.auto_angle
lea ecx, [esp + 0x18]
call fcn.0041a280
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
call fcn.0041a3b0
test eax, eax
je 0x54e097
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebp
call fcn.0041a450
push eax
lea ecx, [esp + 0x24]
call fcn.0041a180
lea ecx, [esp + 0x20]
call fcn.0043d930
mov dword [esp + 0x80], eax
push str.lead_method
lea ecx, [esp + 0x18]
call fcn.0041a280
lea edx, [esp + 0x14]
mov ecx, ebp
push edx
call fcn.0041a3b0
test eax, eax
je 0x54e0db
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
call fcn.0041a450
push eax
lea ecx, [esp + 0x24]
call fcn.0041a180
lea ecx, [esp + 0x20]
call fcn.00428540
mov dword [esp + 0x84], eax
push str.head_lead_angle
lea ecx, [esp + 0x18]
call fcn.0041a280
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebp
call fcn.0041a3b0
test eax, eax
je 0x54e11f
lea edx, [esp + 0x14]
mov ecx, ebp
push edx
call fcn.0041a450
push eax
lea ecx, [esp + 0x24]
call fcn.0041a180
lea ecx, [esp + 0x20]
call fcn.004baae0
fstp qword [esp + 0x88]
push str.tail_lead_angle
lea ecx, [esp + 0x18]
call fcn.0041a280
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
call fcn.0041a3b0
test eax, eax
je 0x54e163
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebp
call fcn.0041a450
push eax
lea ecx, [esp + 0x24]
call fcn.0041a180
lea ecx, [esp + 0x20]
call fcn.004baae0
fstp qword [esp + 0x90]
lea edx, [esp + 0x60]
mov ecx, edi
push edx
call fcn.00565400
push str.axis
lea ecx, [esp + 0x18]
call fcn.0041a280
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
call fcn.0041a3b0
test eax, eax
je 0x54e221
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebp
call fcn.0041a450
push eax
lea ecx, [esp + 0x24]
call fcn.0041a180
push ebx
lea ecx, [esp + 0x24]
call fcn.00419fe0
cmp byte [eax], 0
je 0x54e221
mov esi, dword [esp + 0x20]
mov edi, eax
lea eax, [esp + 0x98]
lea ecx, [esp + 0x9c]
cmp byte [esi], 0x40
jne 0x54e1d7
inc esi
mov dword [ecx], 1
inc edi
mov dl, byte [esi]
cmp dl, 0x78
jne 0x54e1e6
mov dword [eax], 1
jmp 0x54e20b
cmp dl, 0x79
jne 0x54e1f3
mov dword [eax], 2
jmp 0x54e20b
cmp dl, 0x7a
jne 0x54e200
mov dword [eax], 3
jmp 0x54e20b
cmp dl, 0x70
jne 0x54e211
mov dword [eax], 4
add ecx, 8
add eax, 8
mov dl, byte [edi + 1]
inc esi
inc edi
test dl, dl
jne 0x54e1ca
mov edi, dword [esp + 0x19c]
push str.points
lea ecx, [esp + 0x18]
call fcn.0041a280
lea edx, [esp + 0x14]
mov ecx, ebp
push edx
call fcn.0041a3b0
test eax, eax
je 0x54e3fc
mov ecx, dword [esp + 0x194]
lea eax, [esp + 0x14]
push eax
call fcn.0041a450
push eax
lea ecx, [esp + 0x24]
call fcn.0041a180
xor ebp, ebp
lea ecx, [esp + 0x20]
push ebp
call fcn.00419fe0
push 0x880da0
lea ecx, [esp + 0x3c]
mov edi, eax
xor esi, esi
call fcn.00419f00
mov ebx, edi
mov edi, dword [esp + 0x30]
mov byte [esp + 0x18c], 2
mov al, byte [ebx]
cmp al, 0x2c
je 0x54e2a3
cmp al, 0x3b
je 0x54e2a3
push eax
lea ecx, [esp + 0x3c]
call fcn.0041de90
jmp 0x54e3d3
cmp esi, ebp
jne 0x54e2d6
push 0x1c
call fcn.005b449a
add esp, 4
mov dword [esp + 0x30], eax
cmp eax, ebp
mov byte [esp + 0x18c], 3
je 0x54e2ca
mov ecx, eax
call fcn.0043e490
jmp 0x54e2cc
xor eax, eax
mov byte [esp + 0x18c], 2
mov edi, eax
mov eax, dword [esp + esi*8 + 0x98]
dec eax
cmp eax, 3
ja case.default.0x54e2e7
jmp dword [eax*4 + 0x54e604]
mov eax, dword [esp + esi*8 + 0x9c]
lea ecx, [esp + 0x38]
cmp eax, 1
jne 0x54e312
call fcn.00428540
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fstp qword [edi]
jmp case.default.0x54e2e7
call fcn.00428540
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fstp qword [edi]
jmp case.default.0x54e2e7
mov eax, dword [esp + esi*8 + 0x9c]
lea ecx, [esp + 0x38]
cmp eax, 1
jne 0x54e348
call fcn.00428540
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fstp qword [edi + 8]
jmp case.default.0x54e2e7
call fcn.00428540
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fstp qword [edi + 8]
jmp case.default.0x54e2e7
mov eax, dword [esp + esi*8 + 0x9c]
lea ecx, [esp + 0x38]
cmp eax, 1
jne 0x54e37c
call fcn.00428540
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fstp qword [edi + 0x10]
jmp case.default.0x54e2e7
call fcn.00428540
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fstp qword [edi + 0x10]
jmp case.default.0x54e2e7
mov eax, dword [esp + esi*8 + 0x9c]
lea ecx, [esp + 0x38]
cmp eax, 1
jne 0x54e3aa
call fcn.00428540
add eax, 0x2710
jmp 0x54e3af
call fcn.00428540
mov dword [edi + 0x18], eax
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x40], ebp
inc esi
mov byte [ecx], 0
mov al, byte [ebx]
cmp al, 0x3b
jne 0x54e3d3
mov ecx, dword [esp + 0x19c]
push edi
call fcn.00565880
xor esi, esi
cmp byte [ebx], 0
je 0x54e3de
inc ebx
jmp 0x54e28a
mov edx, dword [esp + 0x38]
mov byte [esp + 0x18c], 1
push edx
call fcn.005b44c3
mov edi, dword [esp + 0x1a0]
add esp, 4
xor ebx, ebx
mov ecx, edi
call fcn.005655a0
mov ecx, edi
mov esi, eax
call fcn.005655c0
mov eax, dword [eax]
mov ecx, dword [esi]
push eax
call fcn.0049c3b0
test eax, eax
je 0x54e41e
push 1
jmp 0x54e41f
push ebx
mov ecx, edi
call fcn.0054a170
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x18c], 0
push ecx
call fcn.005b44c3
mov edx, dword [esp + 0x18]
mov dword [esp + 0x190], 0xffffffff
push edx
call fcn.005b44c3
mov ecx, dword [esp + 0x18c]
add esp, 8
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x180
ret 0xc